美文网首页
七个原则7-合成(组合)/聚合复用原则

七个原则7-合成(组合)/聚合复用原则

作者: CC晨_程序小生 | 来源:发表于2018-12-27 15:43 被阅读0次

    七个原则7-合成(组合)/聚合复用原则

    • 定义:尽量使用对象组合/聚合,而不是继承关系达到软件复用的目的
    • 聚合 has-A 和组合 contains-A
    • 优点:可以使系统更加灵活,降低类与类之间的耦合度,降低类与类之间的耦合度,一个类的变化对其他类造成的影响相对较少
    • 何时使用合成/聚合、继承

    代码示例

    未使用的组合/复用原则

    当想增加 DBConnection 的数据库连接时,需新增加类中的方法,违反开闭原则
    源码

    public class DBConnection {
        public String getConnection(){
            return "MySQL数据库连接";
        }
    }
    //------------------------------------------------
    public class ProductDao extends DBConnection {
        public void addProduct(){
            String conn = super.getConnection();
            System.out.println("使用"+conn+"增加产品");
        }
    }
    

    UML

    未使用的组合/复用原则
    使用的组合/复用原则

    源码

    public interface DBConnection {
        public String getConnection();
    }
    //------------------------------------------------
    public class MySQLConnection implements DBConnection{
        @Override
        public String getConnection() {
            return "MySQL数据库连接";
        }
    }
    //------------------------------------------------
    public class PostgreSQLConnection implements DBConnection{
        @Override
        public String getConnection() {
            return "PostgreSQL数据库连接";
        }
    }
    
    //------------------------------------------------
    public class ProductDao {
        private DBConnection dbConnection;
    
        public void setDbConnection(DBConnection dbConnection){
            this.dbConnection = dbConnection;
        }
    
        public void addProduct(){
            String conn = dbConnection.getConnection();
            System.out.println("使用"+conn+"增加产品");
        }
    }
    //------------------------------------------------
    public class Test {
        public static void main(String[] args) {
            ProductDao productDao = new ProductDao();
            productDao.setDbConnection(new MySQLConnection());
            productDao.addProduct();
        }
    }
    
    

    UML

    使用的组合/复用原则

    相关文章

      网友评论

          本文标题:七个原则7-合成(组合)/聚合复用原则

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