首页 > 编程语言 > 详细

java23种设计模式-结构型模式-桥接模式

时间:2020-10-20 21:26:42      阅读:26      评论:0      收藏:0      [点我收藏+]

一、定义

桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。

这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。

二、优点及缺点

优点:

1、抽象和实现的分离。

2、优秀的扩展能力。

3、实现细节对客户透明。

缺点:

1、桥接模式的引入会增加系统的理解与设计难度,由于聚合关联关系建立在抽象层,要求开发者针对抽象进行设计与编程。

 

三、代码实现:

接口类:

package com.example.demo.sjms.qiaojiemoshi;

/**
 *  @Author: caesar
 *  @Date:2020年10月20日 17:10:39
 *  @Description: 接口类
 */
public interface ClassInterface {
    public void println();
}

 

两个接口类:

package com.example.demo.sjms.qiaojiemoshi;

/**
 *  @Author: caesar
 *  @Date:2020年10月20日 17:10:02
 *  @Description: classA
 */
public class ClassA implements ClassInterface{
    @Override
    public void println() {
        System.out.println("这是ClassA的方法!!!");
    }
}

 

package com.example.demo.sjms.qiaojiemoshi;

/**
 *  @Author: caesar
 *  @Date:2020年10月20日 18:10:11
 *  @Description: classB
 */
public class ClassB implements ClassInterface{
    @Override
    public void println() {
        System.out.println("这是classB!!!");
    }
}

 

桥接抽象类:

package com.example.demo.sjms.qiaojiemoshi;

/**
 *  @Author: caesar
 *  @Date:2020年10月20日 17:10:09
 *  @Description: 桥梁模式抽象类
 */
public abstract class BridgeAbstract {
    private ClassInterface classInterface;
    public BridgeAbstract(ClassInterface classInterface){
        this.classInterface = classInterface;
    }
    public abstract void addPrintln();

}

 

桥接实现类:

package com.example.demo.sjms.qiaojiemoshi;

/**
 *  @Author: caesar
 *  @Date:2020年10月20日 17:10:42
 *  @Description: 桥梁类
 */
public class Bridge extends BridgeAbstract{
    public Bridge(ClassInterface classInterface){
        super(classInterface);
    }
    @Override
    public void addPrintln() {
        super.classInterface.println();
        System.out.println("这是桥梁类的实现方法!!!");
    }
}

 

测试:

 

package com.example.demo.sjms.qiaojiemoshi;

/**
 *  @Author: caesar
 *  @Date:2020年10月20日 18:10:06
 *  @Description: 测试类
 */
public class Test {
    public static void main(String[] args) {
        ClassInterface classA = new ClassA();
        ClassInterface classB = new ClassB();
        BridgeAbstract bridgeA = new Bridge(classA);
        BridgeAbstract bridgeB = new Bridge(classA);
        bridgeA.addPrintln();
        bridgeB.addPrintln();
    }
}

 

四、源码级别

 

五、总结

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

 

java23种设计模式-结构型模式-桥接模式

原文:https://www.cnblogs.com/mcjhcnblogs/p/13848037.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!