java之桥接模式(大话设计模式)

     2022-03-27     603

关键词:

桥接模式定义为:将抽象部分与它的实现部分分离,使它们都可以独立的变化。

第一次看设计模式的时候,不是很清楚这句话的意思,随着笔者的不断开发,发现有一种场景,

继承关系多了,不易于维护父类,而笔者认为桥接模式的出现很好的解决了这个问题。用聚合解决继承的父类难维护性。先看下桥接模式设计图。

大话设计模式-类图

技术分享图片

以上类图很简单易懂,先看下笔者的demo

/**
 * 操作接口
 */
public interface IOperate {

    public void operate();
}
/**
 * 品牌父类
 */
public class Brand {

    private IOperate operate;


    public Brand(IOperate operate) {
        super();
        this.operate = operate;
    }

    public void operate() {
        operate.operate();
    }

    public IOperate getOperate() {
        return operate;
    }

    public void setOperate(IOperate operate) {
        this.operate = operate;
    }
}
/**
 * 玩游戏
 */
public class Game implements IOperate{
    @Override
    public void operate() {
        System.out.println("玩游戏");
    }

}
/**
 * 看通讯录
 */
public class MailList implements IOperate {
    @Override
    public void operate() {
        System.out.println("看通讯录");
    }

}
/**
 * M品牌
 */
public class MBrand extends Brand{

    public MBrand(IOperate operate) {
        super(operate);
    }

}
/**
 * N品牌
 */
public class NBrand extends Brand{

    public NBrand(IOperate operate) {
        super(operate);
    }

}
/**
 * 客户端
 */
public class Test {
    public static void main(String[] args) {
        IOperate game = new Game();
        IOperate mailList = new MailList();

        Brand nBrand = new NBrand(game);
        nBrand.operate();

        nBrand = new NBrand(mailList);
        nBrand.operate();

        Brand mBrand = new MBrand(game);
        mBrand.operate();

        mBrand = new MBrand(mailList);
        mBrand.operate();
    }
}

 

运行结果如下

玩游戏
看通讯录
玩游戏
看通讯录

 

比较好理解,不过笔者认为我们在实际开发中,可能很多地方会用到桥接模式,只是大家都忘记这个模式,而用继承去实现。

还是那句老话,理解其核心思想,拒绝生搬硬套。希望能帮助学习桥接模式的小伙伴。

java之策略模式(大话设计模式)

温故而知新,每次读设计模式都会有不同的体验,坚持每天一个设计模式,直到熟练运用设计模式。策略模式定义了很多完成相同工作的算法,但实现不同,它可以以相同的方式调用所有的算法,减少了算法和调用算法的耦合。... 查看详情

java之状态模式(大话设计模式)

看过大话设计模式的小伙伴,都知道大话设计模式中的demo代码不是JAVA的,对于编程来说,设计模式不限于任何语言,讲述的是编程的思想。今天笔者再次看这篇文章时,看了下别人的博客对于设计模式的理解,希望能汲取点其... 查看详情

java之备忘录模式(大话设计模式)

...会经常用到吧!当然这只是笔者的推断。先看下类图大话设计模式-类图再继续看下Demo吧/***需要保存的进度信息类*/publicclassRoleSateMemento{privateIntegeratk;privateIntegervit;privateIntegerattack;publicRoleS 查看详情

图解java设计模式之桥接模式

图解Java设计模式之桥接模式手机操作问题传统方案解决手机操作问题传统方案解决手机操作问题分析桥接模式(Bridge)-基本介绍桥接模式解决手机操作问题桥接模式在JDBC中的源码解析桥接模式的注意事项和细节桥接模式其它应... 查看详情

java之模板模式(大话设计模式)

...用过,而且大家都比较喜欢这个模式,先看一下类图大话设计模式-类图作为一个程序员,不懂得“偷懒“,在笔者看来不是很合格哦!当我们编写程序时,发现很多个类所走的流程基本一致,只是少部分差异,这时我们就需要... 查看详情

java之命令模式(大话设计模式)

...比较频繁时,自然而然就用到命令模式。先看下类图大话设计模式-类图简单说下类图,最开始笔者看大话设计模式的时候也不是很喜欢看类图,主要原因是看不懂,后来当笔者第一次看完设计模式后,才真正意义上的理解类图... 查看详情

java之代理模式(大话设计模式)

...买可乐就是需要做的行为。这是笔者理解的代理模式大话设计模式-类图要想实现代理,那么代理类和被代理的类就都要实现一个共同的接口,就刚刚买可乐的例子,我和我的室友都可以买可乐。代理类可以动态的去做一些事情... 查看详情

java之抽象工厂模式(大话设计模式)

...们还是要吸取其思想而不是生搬硬套。来看下类图:大话设计模式-类图看类图已经很乱了,来简单的梳理下。我们只看接口,这样就不难看出实际上是抽象工厂生产抽象产品的过程,而具体实现都是各自的实现类来做。看下具... 查看详情

java之观察者模式(大话设计模式)

...利集合调取公共方法去完成相应的工作,先看下类图大话设计模式-类图基于类图笔者写了 查看详情

java之外观模式(大话设计模式)

外观设计模式,很多人都已经使用过,只是不知其名,一般一个很nice的系统,模块化做的都很不错,这样如果新来一个业务,只需要把各个模块组装起来就可以满足新的业务,从程序的角度来说,就是我们只需要开一个类,然... 查看详情

设计模式之桥接模式——java语言描述

...象化和实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构性模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦这种模式设计到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这... 查看详情

结构型模式《大话设计模式》——读后感(13)手机软件何时能统一?——桥接模式

桥接模式:将抽象部分与它的实现部分分离,使它们都可以独立地变换【DP】 概述:在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来... 查看详情

java开发的23种设计模式之---桥接模式

桥接模式   概述:将抽象部分与他的实现部分分离,这样抽象化与实现化解耦,使他们可以独立的变化.如何实现解耦的呢,就是通过提供抽象化和实现化之间的桥接结构.   应用场景      &nb... 查看详情

java设计模式之四-----适配器模式和桥接模式

...器模式是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。简单的来说就是通过某个接口将不兼容的两个类进行兼容,俗称转换器。生活比较典型的例子是电器的电压,美... 查看详情

java设计模式之结构型:桥接模式(代码片段)

一、什么是桥接模式:        桥接,顾名思义,就是用来连接两个部分,使得两个部分可以互相通讯,桥接模式的作用就是为被分离的抽象部分和实现部分搭桥。在现实生活中一个物品在搭配不同的配件... 查看详情

java进阶篇设计模式之四-----适配器模式和桥接模式

...器模式是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。简单的来说就是通过某个接口将不兼容的两个类进行兼容,俗称转换器。生活比较典型的例子是电器的电压,美... 查看详情

大话设计模式之简单工厂模式(代码片段)

大话设计模式——简单工厂模式--参考自《大话设计模式》需求现在有一个需求,实现一个简单的计算器对于一般的初学者来说可能会这么实现:publicclasscalculatepublicstaticvoidmain(String[]args)Scannercin=newScanner(System.in);System.out.println(&qu... 查看详情

java设计模式之桥接学习与掌握(代码片段)

文章目录定义优点缺点桥接模式的结构与实现模式的结构模式的实现应用场景定义将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。优点... 查看详情