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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

我理解的--java观察者模式

發布時間:2025/7/14 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 我理解的--java观察者模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

這個模式比較常用特別是在ui界面設計的過程中,android的監聽器就是觀察者模式。從表面上看一個物體發生變化,會引起另一個物體的反應。首先是兩個類,當一個類發消息的時候,另一個類會發生變化。其實是發生變化的類調用了另一個類的函數,執行的是另一個類的函數。從層次上說,應該是一個類中包含了另一個類的引用,發消息的類是代理了另一個類的功能。從語言的層次上,只是簡單的類的組合。

想抽象出來兩個類按鈕和監聽按鈕的事件:

Button:能發出變化,變化的效果是調用的另一個類。

interface?Button?{void?add(Lister?lister);void?notif();}

Lister:真實處理變化的功能類

public?interface?Lister?{void?update(String?name); }

一個具體的按鈕:

class?Radio?implements?Button{Lister?lister;String?name;Radio(String?name){this.name?=?name;}@Overridepublic?void?add(Lister?lister)?{this.lister?=?lister;}@Overridepublic?void?notif()?{lister.update(name);}}

單選按鈕點擊后把名字打印出來:

public?class?ButtonLister?implements?Lister{@Overridepublic?void?update(String?name)?{System.out.println(name+?"按下去了");}}


測試:

class?Test?{public?static?void?main(String[]?args)?{ButtonLister?lister?=?new?ButtonLister();Radio?radio?=?new?Radio("按鈕1");radio.add(lister);radio.notif();}}

結果:

按鈕1按下去了


這個模式學了以后會很容易的理解ui界面的邏輯,他是在一個構件上注冊一個監聽器,監聽器會根據不同的動作作出不同的反應,雙擊、單擊等不同的操作。


轉載于:https://my.oschina.net/liuxinquan/blog/651887

總結

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

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