其他分享
首页 > 其他分享> > 设计原则 - 合成复用原则

设计原则 - 合成复用原则

作者:互联网

目录

概念


编码

实例

/**
 * @Description DB连接
 * @date Dec 19, 2021
 * @version 1.0
 */
public class DBConnection {

	/**
     * 获取DB连接
     * @return
     */
    public String getConnection() {
        return "Mysql数据库连接";
    }

}
/**
 * @Description 产品DAO
 * @date Dec 19, 2021
 * @version 1.0
 */
public class ProductDao extends DBConnection {

    /**
     * 添加产品
     */
    public void addProduct() {
        String conn = super.getConnection();
        System.out.println("使用" + conn + "增加产品");
    }

}
/**
 * @Description 测试类
 * @date Dec 19, 2021
 * @version 1.0
 */
public class Test {

    public static void main(String[] args) {
        ProductDao productDao = new ProductDao();
        productDao.addProduct();
    }

}
使用Mysql数据库连接增加产品

在这里插入图片描述


合成复用原则

/**
 * @Description DB连接
 * @date Dec 19, 2021
 * @version 1.0
 */
public abstract class DBConnection {

    /**
     * 获取DB链接
     * @return
     */
    public abstract String getConnection();

}
/**
 * @Description Mysql连接
 * @date Dec 20, 2021
 * @version 1.0
 */
public class MysqlConnection extends DBConnection {
    @Override
    public String getConnection() {
        return "Mysql数据库连接";
    }
}
/**
 * @Description Oracle连接
 * @date Dec 20, 2021
 * @version 1.0
 */
public class OracleConnection extends DBConnection {
    @Override
    public String getConnection() {
        return "Oracle数据库连接";
    }
}
/**
 * @Description 产品DAO
 * @date Dec 19, 2021
 * @version 1.0
 */
 public class ProductDao {

    private DBConnection dbConnection;

    /**
     * setter注入
     * @param dbConnection
     */
    public void setDbConnection(DBConnection dbConnection) {
        this.dbConnection = dbConnection;
    }

    /**
     * 添加产品
     */
    public void addProduct() {
        String conn = dbConnection.getConnection();
        System.out.println("使用" + conn + "增加产品");
    }

}
/**
 * @Description 合成复用原则测试类
 * @author Coisini
 * @date Dec 19, 2021
 * @version 1.0
 */
public class Test {

    public static void main(String[] args) {
        ProductDao productDao = new ProductDao();
        productDao.setDbConnection(new MysqlConnection());
        productDao.addProduct();

        productDao.setDbConnection(new OracleConnection());
        productDao.addProduct();
    }

}
使用Mysql数据库连接增加产品
使用Oracle数据库连接增加产品

在这里插入图片描述


源码


- End -
- 个人学习笔记 -

标签:java,String,DBConnection,合成,复用,原则,version,public,ProductDao
来源: https://www.cnblogs.com/maggieq8324/p/15709783.html