我理解的--java观察者模式
生活随笔
收集整理的這篇文章主要介紹了
我理解的--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观察者模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 贪心,POJ(2709)
- 下一篇: Oracle12c 在windonSer