设计模式二:bridge

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 Implementor

l         Creating the right Implementor object
如何创建?根据客户环境,或者通过factory

l         Sharing implementors

资源管理:引用计数技术

l         Using multiple inheritance

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值