内容简介: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》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Learning JavaScript
Shelley Powers / Oreilly & Associates Inc / 2006-10-17 / $29.99
As web browsers have become more capable and standards compliant, JavaScript has grown in prominence. JavaScript lets designers add sparkle and life to web pages, while more complex JavaScript has led......一起来看看 《Learning JavaScript》 这本书的介绍吧!