觀察者模式(2)
優缺點
1.一對多,面向介面實現
2.解耦合,在觀察者和被觀察者之間建立一個抽象耦合
3.為子系統提供一個一致的介面
3.如果觀察者之間有迴圈依賴,被觀察者會出發它們的迴圈呼叫導致系統崩潰
4.觀察者知道觀察的物件發生了變化,但不知道知怎麼發生變化的
public static void main(String[] args)
1.string[] args 是main函式的形式引數,獲取命令輸入
2.static 方便呼叫,不用在main方法裡建立物件
java內建觀察者模式
1.內建介面程式碼
package java.util;
import java.util.Observable;
public interface Observer {
void update(Observable var1, Object var2);
}
http://blog.csdn.net/true100/article/details/53004897
2.推拉體現
拉的體現
public interface Observer {
//method to update the observer, used by subject 傳入主題獲取物件
public void update();
//attach with subject to observe
public void setSubject(Subject sub);
}
public class ConcreteObserver implements Observer {
private String name;
private String state;
public ConcreteObserver(String name) {
this.name = name;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
@Override
public String getName() {
return name;
}
@Override
public void update(Subject subject) {
// 主動去主題裡拿資料
state = ((ConcreteSubject) subject).getState();
System.out.println(getName() + "觀察者狀態更新為:" + state);
}
}
內部類
- 成員內部類
- 靜態內部類
- 區域性內部類
- 匿名內部類
1.成員內部類 相當於非靜態方法
class Outer{
private int a = 3;
private Inner in;
public Outer(){
in = new Inner();
}
public int getInnerA(){
return in.a; // 引用內部類的變數,需通過例項
}
public class Inner {
public int a = 2;
public void doSomething() {
// 呼叫外部類的屬性
System.out.println(MemberInner.this.a);// 這塊要注意......很重要!!!
System.out.println(a);
}
}
}
2.靜態內部類,用static修飾的成員內部類
3.區域性內部類
定義在程式碼塊、方法體內、作用域(使用花括號“{}”括起來的一段程式碼)內的類叫區域性內部類。
總結
以上是一些問題的總結和了解,會不斷更新,不斷進步。
相關文章
- 觀察者模式模式
- Head First 設計模式(2)---觀察者(Observer)模式設計模式Server
- Unity——觀察者模式Unity模式
- PHP觀察者模式PHP模式
- 觀察者模式-將訊息通知給觀察者模式
- 【設計模式】觀察者模式設計模式
- 設計模式----觀察者模式設計模式
- 設計模式——觀察者模式設計模式
- 設計模式 —— 觀察者模式設計模式
- 設計模式(觀察者模式)設計模式
- iOS設計模式2 - 觀察者模式_通知機制iOS設計模式
- 18_觀察者模式模式
- PHP-觀察者模式PHP模式
- 大話--觀察者模式模式
- 觀察者模式介紹模式
- PHP 之觀察者模式PHP模式
- redux與觀察者模式Redux模式
- observer-觀察者模式Server模式
- 重構 - 觀察者模式模式
- 設計模式(9) 觀察者模式設計模式
- 設計模式之【觀察者模式】設計模式
- 設計模式-觀察者模式上設計模式
- 設計模式-觀察者模式下設計模式
- 行為型模式--觀察者模式模式
- 設計模式之觀察者模式設計模式
- 設計模式之-觀察者模式設計模式
- 設計模式 #6 (觀察者模式)設計模式
- JS設計模式(觀察者模式)JS設計模式
- 設計模式(十六)觀察者模式設計模式
- PHP設計模式-觀察者模式PHP設計模式
- Java設計模式-觀察者模式Java設計模式
- 行為型模式:觀察者模式模式
- 設計模式解析:觀察者模式設計模式
- 實驗 21:觀察者模式模式
- 行為型:觀察者模式模式
- Spring中的觀察者模式Spring模式
- 進擊的觀察者模式模式
- 徒手擼設計模式-觀察者模式設計模式