打字猴:1.700476058e+09
1700476058
1700476059 super.getImp().doAnything();
1700476060
1700476061 }
1700476062
1700476063 }
1700476064
1700476065 想想看,如果我们的实现化角色有很多的子接口,然后是一堆的子实现。如果在构造函数中不传递一个尽量明确的实现者,代码就很不清晰。我们来看场景类如何模拟,如代码清单29-20所示。
1700476066
1700476067 代码清单29-20 场景类
1700476068
1700476069 public class Client{
1700476070
1700476071 public static void main(String[]args){
1700476072
1700476073 //定义一个实现化角色
1700476074
1700476075 Implementor imp=new ConcreteImplementor1();
1700476076
1700476077 //定义一个抽象化角色
1700476078
1700476079 Abstraction abs=new RefinedAbstraction(imp);
1700476080
1700476081 //执行行文
1700476082
1700476083 abs.request();
1700476084
1700476085 }
1700476086
1700476087 }
1700476088
1700476089 桥梁模式是一个非常简单的模式,它只是使用了类间的聚合关系、继承、覆写等常用功能,但是它却提供了一个非常清晰、稳定的架构。
1700476090
1700476091
1700476092
1700476093
1700476094 设计模式之禅 [:1700454061]
1700476095 设计模式之禅 29.3 桥梁模式的应用
1700476096
1700476097 29.3.1 桥梁模式的优点
1700476098
1700476099 ❑抽象和实现分离
1700476100
1700476101 这也是桥梁模式的主要特占,它完全是为了解决继承的缺点而提出的设计模式。在该模式下,实现可以不受抽象的约束,不用再绑定在一个固定的抽象层次上。
1700476102
1700476103 ❑优秀的扩充能力
1700476104
1700476105 看看我们的例子,想增加实现?没问题!想增加抽象,也没有问题!只要对外暴露的接口层允许这样的变化,我们已经把变化的可能性减到最小。
1700476106
1700476107 ❑实现细节对客户透明
[ 上一页 ]  [ :1.700476058e+09 ]  [ 下一页 ]