设计模式就是将平行结构(水平)的代码,利用结构化(垂直)代码进行重写,实现重用的目的,实现解耦的目的,实现封闭的原则
例如,bridge模式
水平变垂直:单一职责原则,即一个类只有一个引起它变化的原因,而这里引起变化的原因却有两个,即路类型的变化和汽车类型的变化;
http://www.cnblogs.com/houleixx/archive/2008/02/23/1078877.html(利用bridge模式)
设计一个业务时,利用乘的关系,而不是加的关系
乘:
A类:a.1,a.2,a.3 B类:b.1,b.2,b.3 D类中负责逻辑控制是A类与B类,例如A.B的复合,扩展为C(c.1,c.2,c.3)时可以有C.A.B。 因此变化数是3*3=9;扩展是只要单独扩展A类或B类。
加:
D类中利用组合数的关系写出共九种情况,扩展时也要组合数的写出,代码量大很多
桥接模式与装饰的区别:
装饰模式:
这两个模式在一定程度上都是为了减少子类的数目,避免出现复杂的继承关系。但是它们解决的方法却各有不同,装饰模式把子类中比基类中多出来的部分放到单独的类里面,以适应新功能增加的需要,当我们把描述新功能的类封装到基类的对象里面时,就得到了所需要的子类对象,这些描述新功能的类通过组合可以实现很多的功能组合 .
桥接模式:
桥接模式则把原来的基类的实现化细节抽象出来,在构造到一个实现化的结构中,然后再把原来的基类改造成一个抽象化的等级结构,这样就可以实现系统在多个维度上的独立变化 。
另外要注意的是装饰器模式有一个连环的特征,自由搭配功能逐级加强
注意区分Façade模式、Adapter模式、Bridge模式与Decorator模式。Façade模式注重简化接口,Adapter模式注重转换接口,Bridge模式注重分离接口(抽象)与其实现,Decorator模式注重稳定接口的前提下为对象扩展功能。