美文网首页
设计模式七大原则 - 合成复用原则

设计模式七大原则 - 合成复用原则

作者: 夹板儿孩 | 来源:发表于2022-11-29 21:31 被阅读0次

    合成复用原则

    合成复用原则的基本要求是:尽量使用 对象 组合/聚合 , 而不是 继承关系

    示例代码

    public class Connection {
        public String getConn() {
            return "Mysql 数据连接";
        }
    }
    
    
    public class DataBase extends Connection{
        public void update() {
            String conn = super.getConn();
            System.out.println("获取" + conn +" 更新数据");
        }
    }
    
    
    public class Main {
        public static void main(String[] args) {
            DataBase mysql = new DataBase();
            mysql.update();
        }
    }
    
    

    像这种情况,我们在使用继承顺利的得到了 mysql 的数据库连接。也能正常的获得连接,并更新数据。但是如果我们想换成 Oracle 连接就完全没有办法

    使用合成复用原则更改

    public interface Connection {
        String getConn();
    }
    
    
    public class Mysql implements Connection{
        @Override
        public String getConn() {
            return "获得 Mysql 连接";
        }
    }
    
    
    public class Oracle implements Connection{
        @Override
        public String getConn() {
            return "获得 Oracle 连接";
        }
    }
    
    
    public class DataBase{
        public void update(Connection conn) {
            System.out.println("获取" + conn.getConn() +" 更新数据");
        }
    
        public void insert(Connection conn) {
            System.out.println("获取" + conn.getConn() +"插入数据");
        }
    }
    
    
    public class Main {
        public static void main(String[] args) {
            DataBase mysql = new DataBase();
            mysql.update(new Mysql());
            mysql.insert(new Oracle());
        }
    }
    
    

    这里我们使用了依赖倒转的方式来实现了这个功能,同时也满足了合成复用原则(不使用继承)

    相关文章

      网友评论

          本文标题:设计模式七大原则 - 合成复用原则

          本文链接:https://www.haomeiwen.com/subject/joicfdtx.html