国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

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

成都市建設(shè)局官網(wǎng)seo優(yōu)化方式包括

成都市建設(shè)局官網(wǎng),seo優(yōu)化方式包括,網(wǎng)站海報(bào)是怎么做的,wordpress炫酷背景💧 觀察者模式 \color{#FF1493}{觀察者模式} 觀察者模式💧 🌷 仰望天空,妳我亦是行人.? 🦄 個人主頁——微風(fēng)撞見云的博客🎐 🐳 《數(shù)據(jù)結(jié)構(gòu)與算法》專欄的文章圖文并茂🦕…

在這里插入圖片描述

???????????????????????????????????????????????????????????????????????????????????????💧 觀察者模式 \color{#FF1493}{觀察者模式} 觀察者模式💧 ?????????


🌷 仰望天空,妳我亦是行人.?
🦄 個人主頁——微風(fēng)撞見云的博客🎐
🐳 《數(shù)據(jù)結(jié)構(gòu)與算法》專欄的文章圖文并茂🦕生動形象🦖簡單易學(xué)!歡迎大家來踩踩~🌺
💧 《Java學(xué)習(xí)筆記》專欄的文章是本人在Java學(xué)習(xí)中總結(jié)的一些知識點(diǎn)~ 💐
🥣 《每天一點(diǎn)小知識》專欄的文章可以豐富你的知識庫,滴水成河~ 🌊
🪁 希望本文能夠給讀者帶來一定的幫助~🌸文章粗淺,敬請批評指正!🐥


文章目錄

  • 🐳設(shè)計(jì)模式之觀察者模式
    • 引言
    • 觀察者模式的概念和思想
    • 應(yīng)用場景
    • 實(shí)現(xiàn)方式
      • 使用接口
      • 使用 Java 內(nèi)置的觀察者模式
    • 使用觀察者模式
    • 總結(jié)
  • 🐳結(jié)語


🐳設(shè)計(jì)模式之觀察者模式

引言

設(shè)計(jì)模式是軟件開發(fā)中重要的概念之一。觀察者模式是設(shè)計(jì)模式中的一種,它用于定義對象之間的一對多依賴關(guān)系,當(dāng)一個對象的狀態(tài)發(fā)生改變時,其所有依賴者都會得到通知并自動更新。在本文中,我們將深入探討觀察者模式的概念和思想,并介紹觀察者模式的應(yīng)用場景以及常見的代碼實(shí)現(xiàn)方式。


觀察者模式的概念和思想

??💧觀察者模式是一種行為型設(shè)計(jì)模式,它建立了一種對象之間的依賴關(guān)系,當(dāng)一個對象的狀態(tài)發(fā)生改變時,其所有依賴者都會得到通知并自動更新。

??💧觀察者模式的核心思想是將觀察者和被觀察者解耦,使得它們可以獨(dú)立變化。被觀察者維護(hù)一個觀察者列表,并提供注冊、注銷和通知觀察者的方法。觀察者通過注冊到被觀察者上,實(shí)現(xiàn)對被觀察者狀態(tài)變化的監(jiān)聽。

觀察者模式的應(yīng)用場景以及常見的代碼實(shí)現(xiàn)方式 ↓

應(yīng)用場景

??💧觀察者模式通常在以下場景中使用:

  • 當(dāng)一個對象的狀態(tài)變化需要通知其他對象,并且不希望與被通知的對象之間產(chǎn)生緊耦合關(guān)系時。
  • 當(dāng)一個對象的改變需要同時改變其他對象,并且不知道有多少對象需要改變時。
  • 當(dāng)一個對象需要將自己的改變通知給一組對象。

實(shí)現(xiàn)方式

??💧觀察者模式有多種實(shí)現(xiàn)方式,其中最常見的方式包括使用接口使用 Java 內(nèi)置的觀察者模式實(shí)現(xiàn)。

使用接口

??💧首先,我們定義一個被觀察者接口 Subject 和一個觀察者接口 Observer

public interface Subject {void registerObserver(Observer observer);void unregisterObserver(Observer observer);void notifyObservers();
}public interface Observer {void update();
}

在上述代碼中,Subject 接口定義了注冊觀察者、注銷觀察者和通知觀察者的方法。Observer 接口定義了觀察者的 update() 方法,用于接收被觀察者的通知。

??💧接下來,我們實(shí)現(xiàn)具體的被觀察者類 ConcreteSubjectConcreteObserver

public class ConcreteSubject implements Subject {private List<Observer> observers = new ArrayList<>();private int state;public void registerObserver(Observer observer) {observers.add(observer);}public void unregisterObserver(Observer observer) {observers.remove(observer);}public void notifyObservers() {for (Observer observer : observers) {observer.update();}}public int getState() {return state;}public void setState(int state) {this.state = state;notifyObservers();}
}public class ConcreteObserver implements Observer {private Subject subject;public ConcreteObserver(Subject subject) {this.subject = subject;subject.registerObserver(this);}public void update() {int state = subject.getState();// 處理被觀察者狀態(tài)變化的邏輯}
}

在上述代碼中,ConcreteSubject 類實(shí)現(xiàn)了 Subject 接口,它維護(hù)了一個觀察者列表并實(shí)現(xiàn)了注冊、注銷和通知觀察者的方法。當(dāng) ConcreteSubject 的狀態(tài)發(fā)生變化時,它會調(diào)用 notifyObservers() 方法通知所有觀察者。

ConcreteObserver 類實(shí)現(xiàn)了 Observer 接口,它在構(gòu)造函數(shù)中注冊到被觀察者上,并實(shí)現(xiàn)了 update() 方法來處理被觀察者狀態(tài)變化的邏輯。

使用 Java 內(nèi)置的觀察者模式

??💧Java 提供了內(nèi)置的觀察者模式實(shí)現(xiàn),可以通過 java.util.Observable 類和 java.util.Observer 接口來實(shí)現(xiàn)觀察者模式。

import java.util.Observable;
import java.util.Observer;public class ConcreteSubject extends Observable {private int state;public int getState() {return state;}public void setState(int state) {this.state = state;setChanged();notifyObservers();}
}public class ConcreteObserver implements Observer {public void update(Observable o, Object arg) {int state = ((ConcreteSubject) o).getState();// 處理被觀察者狀態(tài)變化的邏輯}
}

在上述代碼中,ConcreteSubject 類繼承自 java.util.Observable 類,并使用 setChanged() 方法標(biāo)記狀態(tài)變化,然后調(diào)用 notifyObservers() 方法通知觀察者。

ConcreteObserver 類實(shí)現(xiàn)了 java.util.Observer 接口,它的 update() 方法會在被觀察者狀態(tài)變化時被調(diào)用。

使用觀察者模式

??💧以下是觀察者模式的使用示例:

public class Client {public static void main(String[] args) {ConcreteSubject subject = new ConcreteSubject();ConcreteObserver observer1 = new ConcreteObserver(subject);ConcreteObserver observer2 = new ConcreteObserver(subject);subject.setState(1);// 輸出:處理被觀察者狀態(tài)變化的邏輯// 輸出:處理被觀察者狀態(tài)變化的邏輯}
}

在上述代碼中,我們創(chuàng)建了一個具體的被觀察者對象 ConcreteSubject 和兩個具體的觀察者對象 ConcreteObserver。通過將觀察者注冊到被觀察者上,當(dāng)被觀察者狀態(tài)發(fā)生變化時,觀察者的 update() 方法會被調(diào)用。

總結(jié)

????觀察者模式是一種有用的設(shè)計(jì)模式,它能夠?qū)崿F(xiàn)對象之間的一對多依賴關(guān)系,當(dāng)一個對象的狀態(tài)發(fā)生改變時,其所有依賴者都會得到通知并自動更新。通過觀察者模式,我們可以實(shí)現(xiàn)松耦合的對象間通信,提高代碼的靈活性和可維護(hù)性。


在這里插入圖片描述


🐳結(jié)語

🐬初學(xué)一門技術(shù)時,總有些許的疑惑,別怕,它們是我們學(xué)習(xí)路上的點(diǎn)點(diǎn)繁星,幫助我們不斷成長。

🐟積少成多,滴水成河。文章粗淺,希望對大家有幫助!

http://m.aloenet.com.cn/news/35952.html

相關(guān)文章:

  • 邯鄲網(wǎng)站建設(shè)安聯(lián)網(wǎng)絡(luò)nb抖音推廣引流平臺
  • 網(wǎng)站開發(fā) 招標(biāo)采購參數(shù)愛站網(wǎng)關(guān)鍵詞
  • 網(wǎng)站怎樣做優(yōu)化調(diào)整百度公司招聘崗位
  • 國內(nèi)建網(wǎng)站知名企業(yè)網(wǎng)站制作廠家有哪些
  • 網(wǎng)站開發(fā)運(yùn)用到的相關(guān)技術(shù)百度競價推廣方案的制定
  • 網(wǎng)站制作公司上海微信引流推廣
  • 做好網(wǎng)站建設(shè)的重要性app優(yōu)化建議
  • 做壞事小視頻網(wǎng)站企業(yè)培訓(xùn)計(jì)劃
  • 泰安百度做網(wǎng)站的百度搜索熱度排名
  • 涼山網(wǎng)站開發(fā)推廣計(jì)劃怎么做
  • dreamweaver教程做網(wǎng)站新浪網(wǎng)今日烏魯木齊新聞
  • 網(wǎng)站搭建 審查重慶搜索排名提升
  • 做代還的人都聚集在哪些網(wǎng)站怎么開網(wǎng)店
  • 渭南做網(wǎng)站怎么免費(fèi)創(chuàng)建個人網(wǎng)站
  • 自己0基礎(chǔ)怎么創(chuàng)業(yè)seo搜索引擎優(yōu)化人員
  • 網(wǎng)站建設(shè) 北京優(yōu)化網(wǎng)站建設(shè)
  • 東莞做網(wǎng)站那家好網(wǎng)站優(yōu)化聯(lián)系
  • 做網(wǎng)站推廣費(fèi)用網(wǎng)絡(luò)推廣代理
  • 做網(wǎng)站需要學(xué)什么蘇州seo網(wǎng)站管理
  • 可以加外鏈的網(wǎng)站成都網(wǎng)站推廣哪家專業(yè)
  • 沈陽建設(shè)網(wǎng)站騰訊廣告推廣平臺入口
  • 北京網(wǎng)站搭建服務(wù)商南寧百度推廣排名優(yōu)化
  • 跨境電商單頁網(wǎng)站的詳情頁怎么做的如何推廣自己成為網(wǎng)紅
  • 永川做網(wǎng)站萬能導(dǎo)航網(wǎng)
  • 網(wǎng)站整套模板品牌整合推廣
  • 網(wǎng)站建設(shè)培訓(xùn)公司國內(nèi)比百度好的搜索引擎
  • 養(yǎng)殖場網(wǎng)站源碼平臺軟件定制開發(fā)
  • 當(dāng)當(dāng)網(wǎng)網(wǎng)站系統(tǒng)建設(shè)的意義搜索引擎優(yōu)化方法包括
  • 新吳區(qū)推薦做網(wǎng)站電話2021國內(nèi)最好用免費(fèi)建站系統(tǒng)
  • 專為網(wǎng)站做點(diǎn)擊量網(wǎng)絡(luò)營銷師工作內(nèi)容