相親交友原始碼的架構設計,實現合成複用原則需要如何做?

雲豹科技程式設計師發表於2021-10-25

合成複用原則是指儘量使用物件組合/聚合而不是繼承關係達到相親交友原始碼複用的目的。可以使相親交友原始碼系統更加靈活,降低類與類之間的耦合度,一個類的變化對其他類造成的影響相對較少。

繼承叫作白箱複用,相當於把所有的實現細節暴露給子類。組合/聚合稱為黑箱複用,我們是無法獲取到類以外的物件的實現細節的。雖然我們要根據具體的業務場景來做相親交友原始碼設計,但也需要遵循 OOP 模型。以資料庫操作為例,先來建立 DBConnection 類:

public class DBConnection {
    public String getConnection(){
        return "MySQL資料庫連線";
    }
}

建立 ProductDao 類:

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+"增加產品");
    }
}

這就是一種非常典型的合成複用原則的應用場景。但是,就目前的相親交友原始碼設計來說,DBConnection 還不是一種抽象,不便於相親交友原始碼系統擴充套件。目前的系統支援 MySQL 資料庫連線,假設業務發生變化,資料庫操作層要支援 Oracle 資料庫。
當然,我們可以在 DBConnection 中增加對 Oracle 資料庫的支援,但是這違背了開閉原則。其實,我們可以不修改 Dao 的程式碼,而將 DBConnection 修改為“abstract”的,來看程式碼:

public abstract class DBConnection {
    public abstract String getConnection();
}

然後將 MySQL 的邏輯抽離:

public class MySQLConnection extends DBConnection {
    @Override
    public String getConnection() {
        return "MySQL資料庫連線";
    }
}

再建立 Oracle 支援:

public class OracleConnection extends DBConnection {
    @Override
    public String getConnection() {
        return "Oracle資料庫連線";
    }
}

具體選擇交給相親交友原始碼應用層,來看一下類圖,如下圖所示。

在這裡插入圖片描述
以上便是“相親交友原始碼的架構設計,合成複用原則的實現”的全部內容,希望對大家開發相親交友原始碼有幫助。

本文轉載自網路,轉載僅為分享乾貨知識,如有侵權歡迎聯絡雲豹科技進行刪除處理
原文連結:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69996194/viewspace-2839137/,如需轉載,請註明出處,否則將追究法律責任。

相關文章