zoukankan      html  css  js  c++  java
  • 23种设计模式之桥接模式

    直接上代码案例。再看他的优缺点以及使用场景

    /**
    * 定义接口--被实现者
    */
    public interface Implementor {
      public void operation();
    }

     

     

     

     

    1.桥接模式的优点:

    (1)实现了抽象和实现部分的分离

          分离了抽象部分和实现部分,从而极大的提供了系统的灵活性,让抽离部分和实现部分独立开来,分别定义接口,这有助于系统进行分层设计,从而产生更好的结构化系统。

    对于系统的高层部分,只需要知道抽象部分和实现部分的接口就可以了。

    (2)更好的扩展性

            由于桥接模式把抽象部分和实现部分分离了,从而分别定义接口,这就使得抽象部分和实现部分可以分别独立扩展,而不会相互影响,大大的提供了系统的可扩展性。

    (3)可动态的切换实现

           实现桥接模式时,就可以实现动态的选择和使用具体的实现。

    (4)实现细节对客户端透明,可以对用户隐藏实现细节。

    2.桥接模式的缺点:
     (1)桥接模式的引入增加了系统的理解和设计难度,由于聚合关联关系建立在抽象层,要求开发者针对抽象进行设计和编程。

     (2)桥接模式要求正确识别出系统中两个独立变化的维度,因此其使用范围有一定的局限性。

    3.桥接模式的使用场景:

      (1)如果一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性,避免在两个层次之间建立静态的继承联系,通过桥接模式可以使他们在抽象层建立一个关联关系。

      (2)抽象化角色和实现化角色可以以继承的方式独立扩展而互不影响,在程序运行时可以动态将一个抽象化子类的对象和一个实现化子类的对象进行组合,即系统需要对抽象化角色和实现化角色进行动态耦合。

      (3)一个类存在两个独立变化的维度,且这两个维度都需要进行扩展。

      (4)虽然在系统中使用继承是没有问题的,但是由于抽象化角色和具体化角色需要独立变化,设计要求需要独立管理这两者。

      (5)对于那些不希望使用继承或因为多层次继承导致系统类的个数急剧增加的系统,桥接模式尤为重要。

  • 相关阅读:
    遗传算法python实现
    lambda的一些用法
    Python遗传和进化算法框架(一)Geatpy快速入门
    电脑连接小爱同学音箱无法调节音量
    Shell脚本批量修改文件编码为UTF-8
    java实现 批量转换文件编码格式为UTF8
    POM添加规范
    SOFA框架跨包调用报错NoClassDefFoundError
    logger打印日志时加if (logger.isInfoEnabled())/if (logger.isDebugEnabled())
    对象,JSON,字符串,map之间的互转
  • 原文地址:https://www.cnblogs.com/HYV587/p/13049605.html
Copyright © 2011-2022 走看看