桥接设计模式13

一、定义


        官方定义:桥接模式属于结构型设计模式,将抽象部分与实现部分分离,使它们都可以独立的变化。

        上述定义太专业了,我的理解是:一个抽象类中持有多个接口或抽象类的引用,抽象类可以有不同的子类,接口也可以有不同的实现类,将这些不同的子类与不同的实现类进行组合操作,形成功能强大的组合对象,并且有效的控制了类的数量。

        Client:调用环境,面向接口编程,接收Abstraction类的实现类

        Abstraction:抽象类,持有Implementor接口的引用,并且相关定义抽象业务方法。

        Implementor:接口,定义另外模块的业务。

        RefinedAbstraction:Abstraction抽象类的实现类,作为Client调用环境中Abstraction实现。在实际编程过程中可以使用Spring注入。

        ConcreteImplementorA:另外模块接口的实现。

        

        

        推荐几篇非常好的桥接设计模式的博客:

        跟着实例学习设计模式(9)-桥接模式bridge(结构型) 这篇博客里面的例子让我拨云见日,茅塞顿开

        浅谈Java设计模式(十)桥接模式(Bridge)      

        Java 传统桥接模式


二、  优缺点


        优点:

        扩展性非常好,因为面向接口与抽象类编程,系统扩展性非常好。

        灵活性好。桥接设计模式将接口的实现与抽象类的实现分开实现,并且使用组合的方式形成功能强大的对象。

      有效的控制类的数量。因为使用了对象的组合,在设计类的过程中,将类的数量由不同维度的“乘积”转为了“和”。


        缺点:

        需要在设计之处就要面向接口编程,要求程序员拥有较高的面向接口编程的能力,难度可想而知。        


三、我对桥接设计模式的思考


        桥接设计模式是一种对象结构型设计模式,它的设计目的是让系统扩展性更好,灵活性更高。对于设计一个新类来说,可能有多个变化因素,这个在生活中也处处可见。不同的颜色,不同的职业,不同的省份。专业一点的,比如不同的数据库驱动,不同的数据库连接池,实现了相同Service接口的不同实现。

        对于面向接口编程来说,有其它设计模式也能与桥接设计模式共同工作。如果一个抽象类中持有其它接口的引用。在实现这个接口的时候,可以提供多种不同的实现类,让这些实现类可以相互替换,已应对不同的需求变动,这就是策略设计模式。另外,如果发现功能相似的接口实现不能协同工作,可以使用适配器设计模式来适配不相容的接口。

        说的更接地气一点,就是在写代码的时候,尝试使用桥接设计模式。然后维护阶段,需求日常变化,这个时候使用采用策略设计模式或者适配器设计模式来编写新的代码,偷懒一点也可以为不能满足现在需求的实现类做个把代理,增强增强原来的功能。


四、桥接设计模式的经典使用

        


图片转自:点击打开链接


        

分割线--------------------------------------------------------------------------------------------

下一篇:享元设计模式14


                

猜你喜欢

转载自blog.csdn.net/yanluandai1985/article/details/80117301