设计模式-----bridge模式

发布时间:2014-10-23 23:25:33
来源:分享查询网

bridge模式的功能:          将抽象部分和实现部分相分离,使它们可以独立的变化。 bridge模式的结构类图:          bridge模式的实现:          #ifndef _BRIDGE_H_ #define _BRIDGE_H_ class Implementor{ public:    virtual void operationImp() = 0 ; }; class ConcreteImplementorA: public Implementor{ public:     void operationImp(); }; class ConcreteImplementorB: public Implementor{ public:     void operationImp(); }; class abstract{ public:    abstract(Implementor* imp):imp(imp)();    ~abstract(){delete imp;imp=NULL;}   void operation() {imp->operationImp();} private:   Implementor* imp; }; #endif int main() {   Implementor* p1 = new ConcreteImplementorA;   abstract a1 = new abstract(p1) ;   a1->operation();      Implementor* p2 = new ConcreteImplementorB;   abstract a2 = new abstract(p2) ;   a2->operation();      return 0 ; } bridge模式的优缺点: 优点:         1.将抽象和实现相分离。桥接模式分离了抽象部分和实现部分,从而极大的提高了系统的灵活度,让抽象部分和实现部分独立开来,分别定义接口,这有利于对系统进行分层,从而产生更好的结构化系统,对于系统的高层部分只需要知道系统的抽象部分和实现部分的接口就可以了。          2.更好的扩展性。由于桥接模式把抽象部分和实现部分分开了,而且分别定义接口,这就使得抽象部分和实现部分可以分别独立的扩展,而不会相互影响,从而大大提高了系统的可扩展性。          3.可以动态的切换实现。由于桥接模式把抽象部分和实现部分分离开了,就可以实现动态的选择和具体的实现。也就是一个实现不再是固定的绑在一个抽象的接口上,可以实现运行期间动态的切换。          4.减少了子类的个数。如果采用继承的实现方式,大约需要两个纬度上的可变化数量的乘积个子类;而采用桥接模式来实现,大约需要两个纬度上的可变化数量的和个子类。可以明显地减少子类的个数。   

返回顶部
查看电脑版