博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式(九)——桥接模式
阅读量:6167 次
发布时间:2019-06-21

本文共 1018 字,大约阅读时间需要 3 分钟。

  hot3.png

一、定义

将抽象部分与实现部分分离脱耦,使它们都可以独立的变化;脱耦方式就是将抽象和实例的继承关系改为组合或聚合关系,将强关联改为弱关联

二、要素

1.抽象化角色

2.修正抽象化角色

3.实现化角色

4.具体实例化角色

三、代码实例

//抽象化角色

public abstract class Abstraction {

    private Implementor mImpl;
    public Abstraction(Implementor impl){
        this.mImpl = impl;
    }
    public void doSomething(){
        this.mImpl.doSomething();
    }
}

//修正抽象角色

public class RefineAbstraction extends Abstraction{

    public RefineAbstraction(Implementor impl) {

        super(impl);
    }

}

 

//实例化角色

public abstract class Implementor {

    public abstract void doSomething();
}

//具体实例化角色

public class ConcreteImplementor extends Implementor{

    @Override

    public void doSomething() {
        System.out.print("doSomething");
    }

}

//客户端

public class Client {

    public static void main(String[] args) {
        ConcreteImplementor impl = new ConcreteImplementor();
        Abstraction refineAbstraction = new RefineAbstraction(impl);
        refineAbstraction.doSomething();
    }
}

四、说明

1.上面的实例是将抽象化角色和实例化角色之间的继承关系,改为聚合关系,这样实现就不在受抽象的影响;

2.不是遇到继承就使用桥接模式,该模式的意图还是对变化的封装,当抽象不稳定时,考虑使用该模式;

转载于:https://my.oschina.net/kun123/blog/726784

你可能感兴趣的文章
C++ 资源管理(RAII)--智能指针
查看>>
1--爬虫环境安装篇
查看>>
java 爬虫学习
查看>>
Mac mini 建立wifi热点
查看>>
STM32 命名方法
查看>>
查询索引之代码开发
查看>>
JavaEE(21) - EJB和Web Service
查看>>
OCP读书笔记(21) - 题库(ExamA)
查看>>
常用网页代码
查看>>
linux命令:tail 命令
查看>>
让Android横竖屏切换时不销毁当前activity
查看>>
C++11之右值引用(一):从左值右值到右值引用
查看>>
016-请你说一说测试用例的边界
查看>>
js闭包的产生
查看>>
SQL关于:警告: 聚合或其他 SET 操作消除了空值。
查看>>
暑期周记8
查看>>
libgdx 3D 测试一
查看>>
如何使用JDBC连接Mysql数据库
查看>>
抗投诉空间
查看>>
QC在安装过程中的问题
查看>>