中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

織夢網(wǎng)站一級目錄十大少兒編程教育品牌

織夢網(wǎng)站一級目錄,十大少兒編程教育品牌,wordpress游記主題,大專學(xué)網(wǎng)站開發(fā)與運(yùn)營一、前言 觀察者模式,又稱為發(fā)布訂閱模式,是一種行為設(shè)置模式,允許對象之間建立一對多的依賴關(guān)系,這樣當(dāng)一個(gè)對象狀態(tài)改變時(shí),它的所有依賴者(觀察者)都會(huì)收到通知并自動(dòng)更新。 二、具體實(shí)現(xiàn) …

一、前言

觀察者模式,又稱為發(fā)布訂閱模式,是一種行為設(shè)置模式,允許對象之間建立一對多的依賴關(guān)系,這樣當(dāng)一個(gè)對象狀態(tài)改變時(shí),它的所有依賴者(觀察者)都會(huì)收到通知并自動(dòng)更新。

二、具體實(shí)現(xiàn)

1、發(fā)布訂閱案例

觀察者接口:

/*** @Description: 觀察者接口* @Date: 2024-12-27 10:08* @Author: gaoyufei**/
public interface Observer {void accept(String message);
}

觀察者實(shí)現(xiàn):

/*** @Description: 訂閱者* @Date: 2024-12-27 10:10* @Author: gaoyufei**/
public class Subscriber implements Observer{public String clientId;public Subscriber(String clientId){this.clientId=clientId;}@Overridepublic void accept(String message) {System.out.println("訂閱者:"+clientId+" 接受到消息:"+message);}
}

主題接口:

/*** @Description: 主題接口* @Date: 2024-12-27 10:15* @Author: gaoyufei**/
public interface Subject {void add(Observer observer);void del(Observer observer);void notify(String message);
}

主題實(shí)現(xiàn):

import java.util.ArrayList;
import java.util.List;/*** @Description: 主題,維護(hù)了訂閱者列表,通知訂閱者* @Date: 2024-12-27 10:16* @Author: gaoyufei**/
public class Topic implements Subject {private List<Observer> observerList=new ArrayList<>();@Overridepublic void add(Observer observer) {observerList.add(observer);}@Overridepublic void del(Observer observer) {observerList.remove(observer);}@Overridepublic void notify(String message) {observerList.stream().forEach(e->{e.accept(message);});}
}

模擬訂閱者訂閱主題,客戶端發(fā)布消息:

/*** @Description: 模擬訂閱者訂閱主題,客戶端發(fā)布消息* @Date: 2024-12-27 10:18* @Author: gaoyufei**/
public class Client {public static void main(String[] args) {Topic topic=new Topic();Subscriber subscriber1=new Subscriber("001");Subscriber subscriber2=new Subscriber("002");Subscriber subscriber3=new Subscriber("003");topic.add(subscriber1);topic.add(subscriber2);topic.add(subscriber3);topic.notify("您有一條新消息!");}
}

2、村長通知村民案例

觀察者接口:

/*** @Description: 觀察者接口* @Date: 2024-12-27 9:35* @Author: gaoyufei**/
public interface Observer {void accept(String message);
}

觀察者具體觀察者村民:

/*** @Description: 具體觀察者,村民,能接受消息* @Date: 2024-12-27 9:37* @Author: gaoyufei**/
public class Resident implements Observer{private String name;public Resident(String name){this.name=name;}@Overridepublic void accept(String message) {System.out.println("村民:"+this.name+"  收到信息:"+message);}
}

抽象主題:

/*** @Description: 抽象主題* @Date: 2024-12-27 9:39* @Author: gaoyufei**/
public interface Subject {void add(Observer observer);void del(Observer observer);void notify(String message);
}

主題的具體實(shí)現(xiàn),村長的記錄本:

import java.util.ArrayList;
import java.util.List;
/*** @Description: 主題的具體實(shí)現(xiàn),村長的記錄本,維護(hù)了村民信息,村長可以通過記錄本給村民群發(fā)信息* @Date: 2024-12-27 9:42* @Author: gaoyufei**/
public class RecordBook implements Subject {private List<Observer> observerList = new ArrayList<>();@Overridepublic void add(Observer observer) {observerList.add(observer);}@Overridepublic void del(Observer observer) {observerList.remove(observer);}@Overridepublic void notify(String message) {observerList.stream().forEach(e -> {e.accept(message);});}
}

村長登記村民信息,用記錄本給村民群發(fā)信息:

/*** @Description: 村長登記村民信息,用記錄本給村民群發(fā)信息* @Date: 2024-12-27 9:44* @Author: gaoyufei**/
public class VillageHead {public static void main(String[] args) {
//        1、村里,村長有一個(gè)記錄村民電話的本子,村民都需要登記一下。
//        在村里有什么事情的時(shí)候,村長就通過群發(fā)消息的方式通知村民。
//        2、村民就是觀察者、訂閱者,村長發(fā)布信息,記錄本就是主題,RecordBook recordBook=new RecordBook();Resident resident=new Resident("王滿銀");Resident resident1=new Resident("孫玉亭");Resident resident2=new Resident("孫玉厚");recordBook.add(resident);recordBook.add(resident1);recordBook.add(resident2);recordBook.notify("大家好,今天下午三點(diǎn)來村支部開會(huì),有重要事情通知!");}
}
http://m.risenshineclean.com/news/61956.html

相關(guān)文章:

  • 智能家居型網(wǎng)站開發(fā)廣安百度推廣代理商
  • seo網(wǎng)站買電腦速成班短期電腦培訓(xùn)班
  • 購物幫做特惠的網(wǎng)站最簡單的網(wǎng)頁制作
  • 如何優(yōu)化公司的網(wǎng)站熱搜榜百度
  • 視頻網(wǎng)站可以做B2C模式嗎網(wǎng)站自然優(yōu)化
  • 新疆烏魯木齊醫(yī)院網(wǎng)站建設(shè)東莞網(wǎng)絡(luò)推廣營銷
  • 給小公司做網(wǎng)站賺錢么江西seo推廣
  • 西寧做腋臭北大網(wǎng)站lseo排名快速刷
  • 怎么做網(wǎng)站超鏈接外媒頭條最新消息
  • 手機(jī)視頻網(wǎng)站開發(fā)廠房網(wǎng)絡(luò)推廣平臺
  • 深圳龍崗做網(wǎng)站公司哪家好seo排名首頁
  • 網(wǎng)站界面設(shè)計(jì)總結(jié)活動(dòng)策劃
  • 宿遷做網(wǎng)站電話市場調(diào)研報(bào)告模板ppt
  • wordpress響應(yīng)式主題制作教程seo社區(qū)
  • asp動(dòng)態(tài)網(wǎng)站開發(fā)課后答案廣告引流推廣平臺
  • 網(wǎng)站開發(fā)的方案最火的網(wǎng)絡(luò)銷售平臺
  • 看房子建設(shè)進(jìn)度的網(wǎng)站在線客服系統(tǒng)平臺有哪些
  • 網(wǎng)站建設(shè)相關(guān)業(yè)務(wù)百度搜索推廣方法
  • 公司網(wǎng)站去哪里做網(wǎng)站關(guān)鍵詞排名查詢
  • 鄭州市網(wǎng)站百度指數(shù)功能模塊
  • 2019廣東省工程建設(shè)網(wǎng)站搜索引擎優(yōu)化代理
  • 任何判斷網(wǎng)站SEO做的好壞中小企業(yè)管理培訓(xùn)課程
  • 蘇州網(wǎng)站設(shè)計(jì)價(jià)格seo整站怎么優(yōu)化
  • 設(shè)計(jì)圖片logo免費(fèi)安康地seo
  • 做招聘網(wǎng)站需要營業(yè)執(zhí)照嗎網(wǎng)站改版seo建議
  • 昌吉建設(shè)局網(wǎng)站廣州seo推廣營銷
  • 成品網(wǎng)站源碼多少錢云建站
  • 網(wǎng)站設(shè)計(jì)日志seo搜索引擎優(yōu)化策略
  • 邢臺網(wǎng)站建設(shè)服務(wù)商網(wǎng)絡(luò)軟文怎么寫
  • 網(wǎng)站建設(shè)售后培訓(xùn)東莞疫情最新消息今天新增