您的位置:首页 > 健康 > 美食 > app程序定制开发_烟台seo_产品推广广告_网站综合查询工具

app程序定制开发_烟台seo_产品推广广告_网站综合查询工具

2025/1/10 17:02:08 来源:https://blog.csdn.net/2302_76363587/article/details/144934690  浏览:    关键词:app程序定制开发_烟台seo_产品推广广告_网站综合查询工具
app程序定制开发_烟台seo_产品推广广告_网站综合查询工具
  • 简介

    • 与适配器模式类似,桥接设计模式也是结构型模式
    • 将抽象部分与实现部分分离,使它们都可以独立的变化
    • 通俗来说,是通过组合来桥接其它的行为/维度
  • 应用场景举例

    • 传统方式
    • 使用桥接设计模式之后
  • 编码示例

    /*** 抽象角色:手机*/
    abstract class Phone {/*** 通过组合的方式来桥接其他行为*/protected Color color;public void setColor(Color color) {this.color = color;}/*** 手机自己的方法*/public abstract void run();
    }/*** 颜色维度*/
    interface Color {void useColor();
    }/*** 具体颜色*/
    class RedColor implements Color {@Overridepublic void useColor() {System.out.println("红色");}
    }/*** 具体颜色*/
    class BlueColor implements Color {@Overridepublic void useColor() {System.out.println("蓝色");}
    }/*** 手机的实例化:小米手机*/
    class XiaomiPhone extends Phone {public XiaomiPhone(Color color) {super.setColor(color);}@Overridepublic void run() {System.out.println("小米手机");color.useColor();}
    }/*** 手机的实例化:华为手机*/
    class HuaweiPhone extends Phone {public HuaweiPhone(Color color) {super.setColor(color);}@Overridepublic void run() {System.out.println("华为手机");color.useColor();}
    }public class Main {public static void main(String[] args) {XiaomiPhone redXmPhone = new XiaomiPhone(new RedColor());redXmPhone.run();XiaomiPhone blueXmPhone = new XiaomiPhone(new BlueColor());blueXmPhone.run();HuaweiPhone redHwPhone = new HuaweiPhone(new RedColor());redHwPhone.run();HuaweiPhone blueHwPhone = new HuaweiPhone(new BlueColor());blueHwPhone.run();}
    }
    
  • 优点

    • 抽象和实现的分离
    • 优秀的扩展能力,符合开闭原则
  • 缺点

    • 增加系统的理解与设计难度
    • 使用聚合关联关系建立在抽象层,要求开发者针对抽象进行设计与编程,比如抽象类汽车,里面聚合了颜色类,有点像适配器
  • 总结和对比

    • 按GOF的说法,桥接模式和适配器模式用于设计的不同阶段
      • 桥接模式用于设计的前期,精细化的设计,让系统更加灵活
      • 适配器模式用于设计完成之后,发现类、接口之间无法一起工作,需要进行填坑
    • 适配器模式经常用在第三方API协同工作的场合,在功能集成需求越来越多的今天,这种模式的使用频度越来越高,包括有些同学听过外观设计模式,这个也是某些场景和适配器模式一样

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com