• 设计模式之 桥接模式


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

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

    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();
    }

  • 相关阅读:
    WPF 文本滚动效果 渐变效果
    Unity3D 学习——入门资料整理
    命名管道 问题:信号灯超时问题
    Nginx 遇到的问题
    Nginx的安装配置 例子
    03 Spring的父子容器
    02 浅析Spring的AOP(面向切面编程)
    03 JVM的垃圾回收机制
    02 Java类的加载机制
    01 深入理解JVM的内存区域
  • 原文地址:https://www.cnblogs.com/betterwgo/p/15232709.html
Copyright © 2020-2023  润新知