python unichr函式知識點總結
阿新 • • 發佈:2020-12-16
前言:
從現實角度來說,我們每一個人都是一個觀察者,同時也是一個被觀察者。
作為被觀察;者,我們會發出一些資訊,觀察者在接收到這些資訊後,會做出相應的反映;而作為觀察者,我們是可以被“被觀察者”所發出的資訊影響的。
一個被觀察者,可能存在多個觀察者。也就是說,一個被觀察者所發出的資訊,可能會影響到多個觀察者。
觀察者設計模式:
定義了一種一對多的關聯關係。一個物件A與多個物件B、C、D之間建立“被觀察與觀察關係”。
當物件A的狀態發生改變時,通知所有觀察者物件B、C. D。當觀察者物件B、c、D在接收到A的通知後,根據自身實際情況,做出相應改變。
當然,觀察者與被觀察者指的都是具有某一類功能的物件、
結構說明:
程式碼:
IObserved:
public interface IObserved { /** * 接收資料資訊 * @param demo */ void shuJu(String demo); }
IBeObserved:
public interface IBeObserved { /** * 新增觀察者的方法 * @param observed */ void addObserved(IObserved observed); /** * 刪除觀察者的方法 *@param observed */ void removeObserved(IObserved observed); /** * 向觀察者傳送訊息的方法 * @param data */ void sendObserved(String data); }
OneBeserved:
public class OneObserved implements IObserved { @Override public void shuJu(String demo) { System.out.println("一號觀察者正在處理資訊:" + demo); } }
TwoBeserved:
public class TwoObserved implements IObserved { @Override public void shuJu(String demo) { System.out.println("二號觀察者正在處理資訊:" + demo); } }
BeObserverSimp:
public class BeObserverSimp implements IBeObserved { /** * 定義觀察者集合/ */ List<IObserved> list; public BeObserverSimp() { //在被觀察者建立的時候,就建立觀察者集合 list = new ArrayList<>(); } @Override public void addObserved(IObserved observed) { list.add(observed); } @Override public void removeObserved(IObserved observed) { list.remove(observed); } @Override public void sendObserved(String data) { //遍歷集合呼叫每個觀察者中的方法 for (IObserved observed : list) { observed.shuJu(data); } } }
測試類:
/** * @author zhangzhixi */ public class Test { public static void main(String[] args) { //建立觀察者 OneObserved one = new OneObserved(); TwoObserved two = new TwoObserved(); //建立被觀察者 BeObserverSimp bos = new BeObserverSimp(); //新增一號跟二號觀察者 bos.addObserved(one); bos.addObserved(two); //刪除一號觀察者 bos.removeObserved(one); //向觀察傳送訊息 bos.sendObserved("你好世界!"); } }