首页 > 其他 > 详细

设计模式之桥接模式

时间:2019-02-04 22:27:11      阅读:224      评论:0      收藏:0      [点我收藏+]

    桥接模式不是一个使用频率很高的设计模式,但是它非常好的体现了开闭原则和合成/聚合复用原则。所谓合成/聚合复用原则指的是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分:新的对象通过向这些对象的委派达到复用已有功能的目的。使用合成/聚合复用原则可以使系统更加的灵活,降低系统间各个模块的耦合。桥接模式是用于把抽象化与实现化解耦,使得二者可以独立变化。

    举个例子现在我们需要使用不同的编程语言来连接不同的数据库。现在可以使用的编程语言分别为php、java、python;数据库分别为Mysql、Oracle、SQL server。首先定义一个获取数据库连接的接口和几个具体数据库的实现。

public interface DbConnection {
     public void getConnection();
}
public class MysqlConnection implements DbConnection{

    public void getConnection() {
        System.out.println("获取mysql的数据库连接");
    }

}


public class OracleConnection implements DbConnection{

    public void getConnection() {
        System.out.println("获取oracle的数据库连接");
    }

}

定义一个语言的抽象类,包含一个数据库连接对象的引用。

public abstract class Language {
    protected  DbConnection connection;
    protected  Language(DbConnection connection) {
        this.connection = connection;
    }
    
    public abstract void useLanguage();
}

使用具体的语言来继承语言的抽象类:

public class JavaConnection extends Language{

    protected JavaConnection(DbConnection connection) {
        super(connection);
    }

    @Override
    public void useLanguage() {
        System.out.println("使用java");
        connection.getConnection();
    }

}

客户端调用:

public static void main(String[] args) {
        Language language = new JavaConnection(new MysqlConnection());
        language.useLanguage();
    }


执行结果:
使用java
获取mysql的数据库连接

现在我们可以轻松的使用不同的语言来连接不同的数据库。使用桥接模式,将继承关系转化成关联关系,它降低了类与类之间的耦合度,提高了系统的灵活性。

 

设计模式之桥接模式

原文:https://www.cnblogs.com/suyang-java/p/10352293.html

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