您的位置:首页 > 移动开发 > Objective-C

设计模式二:bridge

2005-08-31 10:08 375 查看

Bridge

1.目的

Decouple an abstraction from its implementation so that the two can vary independently。Decouple means to have things behave independently from each other.Abstraction is how different things are related to each other conceptually。降耦意味着使互相关联的事物,能够不再关联的很紧密。也就是说,其中某个事物的变化,不会影响到其他的事物。抽象在概念上是事物之间关联的一个接口。 

2.动机

l         要做到“抽象(接口)与实现分离”,最常用的办法是定义一个抽象类,然后在子类中提供实现。也就是说,用继承机制达到“抽象(接口)与实现分离”l         但是这种方法不够灵活,继承机制把实现与抽象部分永久地绑定起来,要想独立地修改、扩展、重用抽象(接口)与实现都非常困难 

3.应用场合

l         编译时刻无法确定抽象(接口)与实现之间的关系l         抽象部分与实现部分都可以通过子类化而扩展l         对一个实现的修改不影响客户(无须重新编译)l         在C++中,对客户完全隐瞒实现细节l         因为扩展的原因,需要把一个类分成两部分,(以便灵活组合)l         在多个对象之间共享数据,但客户不需要知道 

4.结构图

 
 

5.优势

l         抽象部分与实现部分分离,可以在运行时刻连接起来,二进制的兼容形。l         提高可扩充性,抽象部分与实现部分可单独的扩充。l         对客户隐藏其实现细节。 

6.实现

l         Only one Implementorl         Creating the right Implementor object
如何创建?根据客户环境,或者通过factoryl         Sharing implementors资源管理:引用计数技术l         Using multiple inheritance 
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息