日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

java 建模_Java设计模式菜鸟系列(两)建模与观察者模式的实现

發布時間:2025/3/15 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 建模_Java设计模式菜鸟系列(两)建模与观察者模式的实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

觀察者(Observer)模式定義:在對象之間定義了一對多的依賴關系,這樣一來。當一個對象改變狀態時,依賴它的對象都會收到通知并自己主動跟新。Java已經提供了對觀察者Observer模式的默認實現,

Java對觀察者模式的支持主要體如今Observable類和Observer接口。

先看uml模型圖:

一、UML模型圖

二、代碼實現

/** 演示樣例:咱們去菜市場買菜

*

* 小商販--主題

*/

class Food extends Observable {

/** 菜名 */

private String name;

/** 菜價 */

private float price;

public Food(String name, float price) {

this.name = name;

this.price = price;

}

public String getName() {

return name;

}

public float getPrice() {

return price;

}

public void setPrice(float price) {

this.price = price;

/**

* 設置菜價的狀態已經被改變

*/

this.setChanged();

/**

* 通知【全部】正在看菜(已經注冊了)的顧客,然后回調Observer的update方法進行更新

*

* 這里能夠體現對象的一對多:一個小商販一旦更新價格(即一個對象改變狀態)。便會自己主動通知全部的顧客(依賴它的對象都會收到通知)

* 并自己主動update

*/

this.notifyObservers(price);

}

}

/**

* 顧客 --觀察者

*/

class Customer implements Observer {

private String name;

public Customer(String name) {

this.name = name;

}

public String getName() {

return name;

}

@Override

public void update(Observable o, Object arg) {

if (o instanceof Food && arg instanceof Float) {

Food food = (Food) o;

float price = (Float) arg;

System.out.println("您好:" + this.name + " ," + food.getName()

+ "的價格已經發生改變。如今的價格為:" + price + "元/斤");

}

}

}

/**

* client測試類

*

* @author Leo

*/

public class Test {

public static void main(String[] args) {

Food food = new Food("土豆", 1.0f);

Customer zhangsan = new Customer("張三");

Customer lisi = new Customer("李四");

/**

* 加入顧客

*/

food.addObserver(zhangsan);

food.addObserver(lisi);

/**

* 更新價格

*/

food.setPrice(1.5f);

}

}

三、應用場景

GUI框架、氣象觀察等

四、小結

在通知全部觀察者之前一定要調用 setChanged()方法來設置被觀察者的狀態已經被改變,這樣notifyObservers()才會回調Observer的update方法進行更新。

以上內容假設有不同的見解或疏忽的地方,還請大家提出寶貴的建議或意見。

最后大家能夠試著將以下的uml模型進行詳細的代碼實現,如圖:附源代碼

版權聲明:本文博主原創文章,博客,未經同意不得轉載。

總結

以上是生活随笔為你收集整理的java 建模_Java设计模式菜鸟系列(两)建模与观察者模式的实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。