概念:将抽象部分与它实现部分分离,使它们都可以独立地变化。
特点: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电视