一、使用Bridge模式的目的:
使用Bridge模式的一个动机应该是:对象拥有多个属性,行为,在不同的时刻由不同的属性和行为组合可以表现出不同的外部特征。(即排列、组合形式)
如果对每一种属性和行为的组合进行绑定,作为一个子类,那么势必造成大量的子类存在。而且一旦原有的属性改变,或者行为改变了,会导致原有的类需要重新修改编译。
如果将属性、行为分开,采用动态组合的方式,在运行时动态决定需要将那个属性和那个行为搭配,除了可以减少子类的数量之外,还增强了未来的扩展性。
二、Bridge模式与Decorator模式的异同:
1).两者都具有动态设定、改变类运行时功能的意图和手法
2).前者着重的是在原有功能基础上的小修改,并不需要将抽象和行为分开,后者则着重于整体的组合,抽象和实现分离
三、Bridge模式的特点:
·在抽象接口中包含了一个对行为接口的引用,这样的话行为的操作将完全委托给行为接口完成,抽象类无需关心。
·在抽象类的继承子类中,调用了行为类的子类来实现不同的行为。此时抽象类的子类中只知道属性,但不知道具体的行为实现,实现了概念与行为的分离
·在行为类的继承子类中,只知道执行相应的动作,但不知道具体的属性,实现了行为和概念的分离
四、Bridge模式的实现图例:
-------------------------------------------------------------
生活就像打牌,不是要抓一手好牌,而是要尽力打好一手烂牌。
posted on 2008-02-26 21:48
Paul Lin 阅读(2069)
评论(0) 编辑 收藏 所属分类:
模式与重构