内容简介:1、2、3、
桥接模式的解析-iOS
其他 设计模式 的介绍
2、 建造者模式的解析-iOS
3、 单例模式的解析-iOS
4、 原型模式的解析-iOS
5、 代理模式的解析-iOS
6、 适配器模式的解析-iOS
7、 装饰器模式的解析-iOS
8、 外观模式的解析-iOS
9、 桥接模式的解析-iOS
10、 组合模式的解析-iOS
概率描述
桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。 百度百科
角色
桥梁模式所涉及的角色有:
抽象化(Abstraction)角色:抽象化给出的定义,并保存一个对实现化对象的引用。
修正抽象化(Refined Abstraction)角色:扩展抽象化角色,改变和修正父类对抽象化的定义。
实现化(Implementor)角色:这个角色给出实现化角色的接口,但不给出具体的实现。必须指出的是,这个接口不一定和抽象化角色的接口定义相同,实际上,这两个接口可以非常不一样。实现化角色应当只给出底层操作,而抽象化角色应当只给出基于底层操作的更高一层的操作。
具体实现化(Concrete Implementor)角色:这个角色给出实现化角色接口的具体实现。 百度百科
实用场景
1、使用那些不需要通过继承导致类的个数急剧增加的系统
2、就是抽象和实现可以自己独立扩展,两者之间互不影响
案例解析
在平常的生活中,我们都使用空调,可能大家都注意到了,如果你的空调遥控器坏了,我们都是在市场上配一个万能的遥控器。你要你用空调的编码序号绑定上空调就可以使用了。
这就涉及到一个问题:每个空调都需要对应一个自己型号的遥控吗。
其实我们的空调开发商,都会生产很多型号的空调,这样是不是每个空调种类都生产一个自己独有的遥控器呢,如果这样做那开发商需要生产很多种类的遥控器。但是我们空调好多的功能都是差不多的,我们其实可以把我们的遥控器设计成一个可以复用和扩展的遥控器。这样我们就可以使用我们的桥接模式来设计。代码如下:
AbstractControl-是遥控器的抽象层
AbstractControl–遥控器真实调用层继承自AbstractControl
AirConditionerProtocol—遥控器和空调之间的桥接点
AbstractAirConditioner–抽象的空调层
VertableAirConditionerA-真实的空调层,继承自AbstractAirConditioner
VertableAirConditionerB-真实的空调层,继承自AbstractAirConditioner
调用代码
命令行的结果
优缺点
优点:
1、实现了抽象和实现的分离
2、拥有更好的扩展性
3、可以动态的切换实现
缺点:
1、增加了系统的设计复杂程度
2、代码的可读性差
桥接模式和适配模式的区别
大家有没有发现这个我之前写过的 适配器的解析 有点类似,我们来说明比较一下这个2个模式的区别
相同点:
桥接模式和适配器模式都是让两个接口配合的工作
不同点:
桥接模式:把实现和抽象都分离开了,可以让两者的接口可以不一样。主要的目的是把他们分离开了。桥接模式是先有桥在有2端的接口,这个就好像,我们控制空调的一些指令,他就想一个桥一样,把我们一些通过遥控器传递给给空调,让空调工作。
适配器模式:适配器模式是,先有2端的东西以后,为了让2端的东西更好的相容,才有的适配器。就好像我们的国家电网,和我们平常使用的电器设备,他们是已经存在的2个接口,我们只是在中间做了一个转换。让他们配合着一起工作。
总结
如果有写的不正确或者侵权的,希望大家给我提出来,我会及时修改。谢谢大家。
以上所述就是小编给大家介绍的《桥接模式的解析-iOS》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。