zoukankan      html  css  js  c++  java
  • 设计模式之 桥接模式

    桥接模式通过将抽象与实现解耦,使二者可以根据需求独立变化。

    桥接模式主要用于解决在需求多变的情况下使用继承造成类爆炸的问题。

    image

    (1)定义接口

    public interface Driver{
        void executeSQL();
    }

    (2)定义接口实现类

    public class MysqlDriver implements Driver{
        private final static Log logger = LogFactory.getLog(this.getClass());
    
        @Override
        public void executeSQL(){
            logger.info("execute sql by mysql driver");
        }
    }
    
    public class OracleDriver implements Driver{
        private final static Log logger = LogFactory.getLog(this.getClass());
    
        @Override
        public void executeSQL(){
            logger.info("execute sql by oracle driver");
        }
    }

    (3)定义桥接管理

    public abstract class DriverManagerBridge{
        private Driver driver;
        public void execute(){
            this.driver.executeSQL();
        }
    
        public Driver getDriver(){
            return driver;
        }
        public void setDriver(Driver driver){
            this.driver = driver;
        }
    }

    (4)定义桥接

    public class MyDriverBridge extends DriverManagerBridge{
        public void execute(){
            getDriver().executeSQL();
        }
    }

    (5)使用桥接模式

    public static void main(String[] args){
        DriverManagerBridge driverManagerBridge = new MyDriverBridge();
        // 设置Mysql 驱动
        driverManagerBridge.setDriver(new MysqlDriver());
        driverManagerBridge.execute();
        // 切换到Oracle驱动
        driverManagerBridge.setDriver(new OracleDriver());
        driverManagerBridge.execute();
    }

  • 相关阅读:
    Jquery 复习01
    工具和资源
    常用 npm 和 yarn 命令
    Jenkins 安装 ruby-runtime 出错
    shiro+jwt 实现权限控制
    Sql Server 2008 R2 查询一个实例中存在某个表的数据库
    使用sqlcmd执行连接的时候一直报有语法错误
    Linux信号
    记一次内存爆涨分析 , JVM命令使用
    Java,List操作技巧
  • 原文地址:https://www.cnblogs.com/betterwgo/p/15232709.html
Copyright © 2011-2022 走看看