日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

设计模式(三)--观察者模式

發(fā)布時間:2024/7/5 asp.net 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设计模式(三)--观察者模式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

觀察者模式:定義了對象間的一種一對多的依賴關(guān)系,當(dāng)被觀察的對象發(fā)生改變時,所有依賴于它的對象都會得到通知并被自動更新,而且被觀察的對象和觀察者之間是松耦合的。在該模式中,有目標(biāo)(Subject)和觀察者(Observer)兩種角色。目標(biāo)角色是被觀察的對象,持有并控制著某種狀態(tài),可以被任意多個觀察者作為觀察的目標(biāo)。也叫發(fā)布--訂閱模式

簡單實例:再PC端登錄帳號時,其他客戶端帳號被踢下線,實現(xiàn)同一時間只能在一處登錄帳號。

//目標(biāo),被觀察 class user implements SplSubject {public $username='';public $password='';public $observers=null;public function __construct($username,$password){$this->username=$username;$this->password=$password;$this->observers=new SplObjectStorage();}public function attach(SplObserver $observer) {// TODO: Implement attach() method.$this->observers->attach($observer);}public function detach(SplObserver $observer) {// TODO: Implement attach() method.$this->observers->detach($observer);}public function notify() {// TODO: Implement notify() method.$userinfo['username']=$this->username;foreach ($this->observers as $observer) {$observer->update($this, $userinfo);}}public function login(){echo 'PC: '.$this->username.' login in';//通知$this->notify();}}class ios implements SplObserver{public function update(SplSubject $subject) {// TODO: Implement update() method.if (func_num_args() === 2) {$userinfo = func_get_arg(1);echo "<br>";echo 'IOS: ' . $userinfo['username'] . ' login out ';}} } class android implements SplObserver{public function update(SplSubject $subject) {// TODO: Implement update() method.if (func_num_args() === 2) {$userinfo = func_get_arg(1);echo "<br>";echo 'android: ' . $userinfo['username'] . ' login out ';}} }$user=new user('tom','123456'); //添加觀察者 $user->attach(new ios()); $user->attach(new android()); //通知 $user->login();

詳細請參考:

https://www.ibm.com/developerworks/cn/opensource/os-cn-observerspl/

?

轉(zhuǎn)載于:https://www.cnblogs.com/Caoxt/p/10107503.html

總結(jié)

以上是生活随笔為你收集整理的设计模式(三)--观察者模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。