成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

演示W(wǎng)CF設(shè)計模式之發(fā)布-訂閱

開發(fā) 后端
我們都知道設(shè)計模式的好處,在里就WCF設(shè)計模式發(fā)布-訂閱的原理分析一下,希望看過本文之后就可以熟練的運用這種設(shè)計模式。

一門好的語言它就要有一定的設(shè)計模式,在WCF這門技術(shù)中它也提供了許多種設(shè)計模式,有了設(shè)計模式在我們的應(yīng)用中就會很方便,我們這里就WCF設(shè)計模式中的發(fā)布-訂閱模式分析一下吧。針對事件使用原來的雙向回調(diào)通常會引入發(fā)布者與訂閱者的高度耦合。訂閱者必須知道所有發(fā)布的服務(wù)在應(yīng)用程序的位置,并連接它們。訂閱者不能識別的發(fā)布者無法通知事件的訂閱者。如果增加新的訂閱者(或者移除已經(jīng)存在的訂閱者)就會給已經(jīng)部署了的應(yīng)用程序帶來困難。

#T#無論什么時候,對于應(yīng)用程序的任何人發(fā)出的事件的一個特定類型,訂閱者都無法要求獲得通知。此外,訂閱者必須為每個發(fā)布者發(fā)出多個昂貴的調(diào)用,不管是訂閱還是取消訂閱。不同的發(fā)布者可能會觸發(fā)相同的事件,但卻為訂閱者和取消訂閱提供了略微不同的方法,自然而然給訂閱者與相關(guān)方法帶來耦合。大致相同的是,發(fā)布者只能通知它知道的訂閱者。無論是誰,如果希望接收事件,發(fā)布者都無法將消息傳遞給它,也沒有能力廣播事件。此外,所有的發(fā)布者都必須包含必要的代碼,管理訂閱者列表以及自身的發(fā)布行為。這些代碼幾乎與服務(wù)要解決的業(yè)務(wù)問題無關(guān),如果還要提供一些高級特性,例如并發(fā)發(fā)布,就會增加相當大的復(fù)雜度。

而且,基于雙向的回調(diào)同樣會引入發(fā)布者與訂閱者生命周期的耦合度。為了訂閱和接收事件,必須運行訂閱者。訂閱者無法詢問事件是否被觸發(fā),而應(yīng)用程序則需要創(chuàng)建一個訂閱者的實例,讓它處理該事件。安全性則代表了另外一種耦合:訂閱者需要通過各種安全模式以及使用的證書,以具備驗證所有發(fā)布者的能力。同時,發(fā)布者也需要具有足夠的安全證書,從而允許觸發(fā)事件,不同的發(fā)布者可能具有不同的角色成員機制。

最后,必須以編程方式設(shè)置訂閱信息。我們很難通過管理方式在應(yīng)用程序中配置訂閱信息,或者在系統(tǒng)運行時,改變訂閱者的選項。這些問題實際上不是WCF雙向調(diào)用所特有的,過去的技術(shù)例如COM連接點或者.NET委托同樣具有這樣的特性。所有這些都屬于緊密耦合的事件管理機制。

WCF設(shè)計模式發(fā)布-訂閱

若要解決以上提及的問題,可以使用已知的發(fā)布-訂閱設(shè)計模式對它們進行設(shè)計。該模式所隱藏的含義很簡單:通過引入一個專門的訂閱服務(wù),以及一個專門的發(fā)布服務(wù),解除發(fā)布者與訂閱者之間的耦合,如圖所示。


 
  圖一個發(fā)布-訂閱系統(tǒng) 
 
圖一個發(fā)布-訂閱系統(tǒng)

需要訂閱事件的訂閱者注冊訂閱服務(wù),該服務(wù)負責(zé)管理訂閱者列表,同時為取消訂閱提供了相似的功能。同樣,所有發(fā)布者均使用發(fā)布服務(wù)觸發(fā)它們的事件,避免將事件直接傳遞給訂閱者。訂閱和發(fā)布服務(wù)提供了一個間接層,從而解除了與系統(tǒng)之間的耦合。訂閱者不需要了解發(fā)布者的身份。它們能夠訂閱事件類型,以及接收任何發(fā)布者的事件,并且訂閱機制對于所有訂閱者都是統(tǒng)一的。事實上,發(fā)布者不需要管理任何訂閱列表,也不用關(guān)心訂閱者是誰。它們會將事件傳遞給發(fā)布服務(wù),然后再傳遞給需要事件的訂閱者,上述就是一個WCF設(shè)計模式的一個簡單介紹。

責(zé)任編輯:田樹 來源: 博客
相關(guān)推薦

2010-03-02 16:28:11

WCF發(fā)布訂閱

2025-03-11 09:30:00

2010-07-05 12:09:16

SQL Server

2022-06-27 13:56:10

設(shè)計模式緩存分布式系統(tǒng)

2022-12-02 07:28:58

Event訂閱模式Spring

2009-11-09 16:14:49

WCF服務(wù)元數(shù)據(jù)

2021-08-02 17:21:08

設(shè)計模式訂閱

2009-11-09 13:12:14

WCF事物操作

2009-11-06 09:30:35

WCF服務(wù)框架

2025-01-09 11:15:47

2023-11-10 09:22:06

2010-03-02 13:43:01

WCF事務(wù)演示

2023-01-11 08:22:22

RabbitMQ通信模型

2009-11-05 16:34:37

WCF序列化

2025-02-25 09:29:34

2020-08-21 07:23:50

工廠模式設(shè)計

2009-11-05 09:35:54

WCF體系架構(gòu)

2009-11-06 15:02:47

WCF契約查詢

2021-06-09 08:53:34

設(shè)計模式策略模式工廠模式

2012-02-29 09:41:14

JavaScript
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 91精品久久久久久久久 | 日日夜夜天天 | 午夜理伦三级理论三级在线观看 | 国产精品九九九 | 亚洲成人三级 | 在线色网 | 亚卅毛片 | 欧美福利 | 欧美日韩一区二区三区在线观看 | 99免费在线视频 | 亚洲视频在线免费观看 | 视频一区二区在线 | 亚洲免费网| 欧美黄在线观看 | 一区精品视频 | 久久综合婷婷 | 91国语清晰打电话对白 | 日韩欧美一级片 | 国产 欧美 日韩 一区 | 国产97色 | 狠狠做六月爱婷婷综合aⅴ 国产精品视频网 | 成人av鲁丝片一区二区小说 | 久久精品—区二区三区 | 亚洲精品一区二区网址 | 毛片一区二区三区 | 91久久国产综合久久91精品网站 | 二区精品 | 夜夜骑av| 特级特黄特色的免费大片 | 欧美日韩大陆 | 欧美成人精品 | 一区在线视频 | 国产精品美女久久久免费 | 国产一区二区三区在线看 | 欧美激情综合 | 亚洲一区中文字幕在线观看 | 国产精品久久久久久亚洲调教 | 自拍视频网 | 亚洲欧美一区二区三区1000 | 九九精品热 | 超碰3 |