概念:將抽象部分與它實現部分分離,使它們都可以獨立地變化。
特點:1. 將依賴具體的實現改爲依賴抽象,得到送耦合的狀態。
2. 分離接口和實現部分。
3 提高了擴展性。
如圖:
解讀一下:
1. 有個遙控器的抽象類,他可以操控TV(持有),做一些操作。
2 遙控器的抽象類有具體的子類,分別是具體的品牌遙控器, 小米遙控器和TCL 遙控器, 他們可以做一些具體的事情,設置音量、設置頻道等一系列。
3. 同樣有一個抽象類TV, 他可以相應遙控器的操作。
4.抽象類TV有兩個具體的子類,分別是小米電視和TCL電視。 他們可以具體相應對應遙控器的指令。
對應部分代碼:
控制器橋接部分:
Remote *remote = [[MIRemote alloc]init]; // 小米遙控器
remote.tv = [[TVXiaoMI alloc] init]; // 小米遙控器持有一個小米電視對象
[(MIRemote *)remote up]; // 小米遙控器操作 小米電視
remote = [[TCLRemote alloc]init]; // TCL遙控器
remote.tv = [[TV_TCL alloc] init]; // TCL遙控器持有一個TCL電視對象
[(TCLRemote *)remote down]; // TCL遙控器操作 TCL電視