设计模式-桥接模式

这篇具有很好参考价值的文章主要介绍了设计模式-桥接模式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

核心思想

  • 适配器模式类似,以后也会遇到意思接近一样的设计模式。在开发中一般多个模式混用,且根据不同的场景进行搭配,桥接模式也是结构型模式
  • 将抽象的部分和实现的部分分离,使它们都可以独立的变化。通俗来说,就是通过组合来桥接其它的行为或维度

与适配器模式业务场景对比

  • 桥接模式用与设计前期,精细化设计,让系统更加灵活
  • 适配器模式用与设计完成之后,发现类、接口之间无法一起工作,需要进行填坑

场景使用

  • 系统需要在构建的抽象化角色和具体角色之前增加更多的灵活性
  • 不想使用继承导致系统类的个数急剧增加
  • 有个时候一个类,可能会拥有多个变化维度,比如手机,有不同的品牌和颜色,可以使用继承组合的方式进行开发,假如维度很多,就容易出现类的膨胀,使用桥接模式就可以解决这个问题,而且解耦

继承方式

设计模式-桥接模式,设计模式,设计模式,桥接模式,java

桥接模式

设计模式-桥接模式,设计模式,设计模式,桥接模式,java

优缺点

优点

  • 抽象与实现分离
  • 比较好的扩展能力

缺点

  • 使用聚合关联关系建立在抽象层,要求开发者针对抽象进行设计和编程
  • 增加系统的理解和设计难度

代码示例

颜色接口

public interface Color {
    void useColor();
}

颜色接口实现

public class RedColor implements Color {
    @Override
    public void useColor() {
        System.out.println("红色");
    }
}
public class WhiteColor implements Color {
    @Override
    public void useColor() {
        System.out.println("白色");
    }
}
public class BlackColor implements Color {
    @Override
    public void useColor() {
        System.out.println("黑色");
    }
}

手机抽象类

public abstract class Phone {

    /**
     * 组合的方式来桥接其它行为
     */
    protected Color color;


    public void setColor(Color color) {
        this.color = color;
    }

    /**
     * 手机的方法
     */
    abstract public void run();
}

扩展维度

public class ApplePhone extends Phone {

    public ApplePhone(Color color){
        super.setColor(color);
    }
    
    @Override
    public void run() {
        color.useColor();
        System.out.println("苹果手机");
    }
}
public class XMPhone extends Phone {

    public XMPhone(Color color){
        super.setColor(color);
    }
    
    @Override
    public void run() {
        color.useColor();
        System.out.println("小米手机");
    }
}
public class HWPhone extends Phone {

    public HWPhone(Color color){
        super.setColor(color);
    }
    
    @Override
    public void run() {
        color.useColor();
        System.out.println("华为手机");
    }
}

测试

public class AppRun {
    public static void main(String[] args) {

        ApplePhone applePhone = new ApplePhone(new RedColor());
        applePhone.run();

        System.out.println("====================");

        HWPhone blueHwPhone = new HWPhone(new BlackColor());
        blueHwPhone.run();

        System.out.println("====================");

        HWPhone redHwPhone = new HWPhone(new RedColor());
        redHwPhone.run();
    }
}

设计模式-桥接模式,设计模式,设计模式,桥接模式,java文章来源地址https://www.toymoban.com/news/detail-671083.html

到了这里,关于设计模式-桥接模式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java设计模式之结构型-桥接模式(UML类图+案例分析)

    目录 一、基础概念 二、UML类图 三、角色设计 四、案例分析 4.1、支付方式 4.2、支付渠道  五、总结 桥接模式(Bridge Pattern)是一种结构型设计模式,其主要目的是“将抽象部分与实现部分分离,使它们都可以独立地变化”。 桥接模式的核心思想是把抽象(abstraction)与实现

    2024年02月13日
    浏览(47)
  • 【设计模式——学习笔记】23种设计模式——桥接模式Bridge(原理讲解+应用场景介绍+案例介绍+Java代码实现)

    现在对不同手机类型的不同品牌实现操作编程(比如:开机、关机、上网,打电话等),如图 【对应类图】 【分析】 扩展性问题(类爆炸),如果我们再增加手机的样式(旋转式),就需要增加各个品牌手机的类,同样如果我们增加一个手机品牌,也要在各个手机样式类下增加。 违

    2024年02月15日
    浏览(43)
  • 【Java面试题】设计模式之七种结构性模式——代理模式、适配器模式、桥接模式、装饰模式、外观模式、享元模式、组合模式

    目录 一、代理模式 二、适配器模式 三、桥接模式 四、装饰模式 五、外观模式 六、享元模式 七、组合模式 概念: 代理模式是为其他对象提供一种以代理控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对

    2023年04月09日
    浏览(52)
  • 设计模式:桥接模式

    桥接模式(Bridge Pattern):旨在将抽象部分和实现部分解耦,使它们可以独立地变化。这种模式通过将抽象和实现分离,使它们可以独立地进行扩展和修改,而不会相互影响。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。 假如需要使用大

    2024年01月25日
    浏览(55)
  • 设计模式 07 桥接模式

    桥接模式(Bridge Pattern)属于 结构型 模式 桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为 柄体 (Handle and Body)模式或 接口 (Interface)模式。 比如需要创建电脑对象,市面上的电脑非常多, 品牌 有华为、苹果、联

    2024年02月11日
    浏览(58)
  • 设计模式详解-桥接模式

    类型:结构型模式 实现原理:将抽象类和实现类分离,使其独立,然后使用接口再将二者连接起来。 意图:将抽象部分与实现部分分离,使它们都可以独立的变化。 主要解决:类变化频繁时用继承可能会出现的类爆炸问题。 如何解决:减少类的耦合关系,让类独立变化。

    2024年02月12日
    浏览(45)
  • 设计模式-桥接模式

    适配器模式 类似,以后也会遇到意思接近一样的设计模式。在开发中一般多个模式混用,且根据不同的场景进行搭配,桥接模式也是 结构型模式 将抽象的部分和实现的部分分离,使它们都可以独立的变化。通俗来说,就是通过组合来 桥接 其它的 行为或维度 与适配器模式业

    2024年02月11日
    浏览(46)
  • 【设计模式】桥接模式

    桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。 这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类,这两种类型的类可被结

    2024年02月13日
    浏览(65)
  • 设计模式——桥接模式

    引用 桥 我们大家都熟悉,顾名思义就是用来将河的两岸联系起来的。而此处的桥是用来将两个独立的结构联系起来,而这两个被联系起来的结构可以独立的变化,所有其他的理解只要建立在这个层面上就会比较容易。 基本介绍 桥接模式(Bridge)是指将实现与抽象放在两个不

    2024年02月12日
    浏览(53)
  • 设计模式——桥接模式详解

    1.1⭐桥接模式的定义 维基百科: 桥接模式 是软件设计模式中最复杂的模式之一,它把事物对象和其具体行为、具体特征分离开来,使它们可以各自独立的变化。 百度百科: 桥接模式 是将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,

    2024年02月06日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包