建立型 工廠方法模式

2021-10-05 13:36:57 字數 1927 閱讀 7008

抽象產品(定義產品的介面,產品物件的公共父類)

具體產品(實現產品的介面)

抽象工廠(宣告工廠方法,返回乙個產品)

具體工廠(抽象工廠的子類,客戶端呼叫,返回乙個具體的例項)

需求:日誌記錄器可以通過很多途徑儲存日誌,使用者可以修改配置檔案,靈活的更換日誌記錄的方式,為了更好的封裝記錄器的初始化過程,並保證多種記錄器切換的靈活性,使用工廠方法模式設計該系統。

抽象產品介面:logger

//抽象產品類

public

inte***ce

logger

具體產品實現:databaselogger,filelogger
import com.daq.factorymethod.logger;

public

class

databaselogger

implements

logger

}

import com.daq.factorymethod.logger;

public

class

filelogger

implements

logger

}

抽象工廠介面:logge***ctory
import com.daq.factorymethod.logger;

//抽象工廠介面

public

inte***ce

logge***ctory

具體工廠實現:databaselogge***ctoryfilelogge***ctory
import com.daq.factory.logge***ctory;

import com.daq.factorymethod.logger;

import com.daq.factorymethod.impl.databaselogger;

public

class

databaselogge***ctory

implements

logge***ctory

}

import com.daq.factory.logge***ctory;

import com.daq.factorymethod.logger;

import com.daq.factorymethod.impl.filelogger;

public

class

filelogge***ctory

implements

logge***ctory

}

客戶端測試:client
import com.daq.factory.logge***ctory;

import com.daq.factory.impl.filelogge***ctory;

import com.daq.factorymethod.logger;

public

class

client

}

如果要增加新的功能,只需要對應的增加乙個新的具體工廠類,然後在客戶端**中修改具體工廠類的類名,原有類庫的**無需修改。

通過引入配合檔案並使用反射機制可以實現在不修改客戶端**的基礎上更換具體共產類,系統更符合開閉原則,具備更好的擴充套件性。

建立型 工廠方法模式

1 工廠方法模式意圖 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。factory method使乙個類的例項化延遲到其子類。工廠方法模式用於為屬於同一類別的產品定義對應的具體工廠類,並將具體工廠類開放給使用者類來使用。2 應用場景 考慮乙個榨汁機的應用場景。榨汁機可以用來製作蘋果汁 西瓜汁...

設計模式 建立型 工廠方法模式

建立性模式有五種 1.工廠模式 簡單工廠模式 經常被用到,不屬於gof23種設計模式 工廠方法模式 抽象工廠模式 2.建造者模式 3.原型模式 4.單例模式 工廠方法 factory method 模式的意義是定義乙個建立產品物件的工廠介面,將實際建立工作推遲到子類當中。核心工廠類不再負責產品的建立...

建立型設計模式 工廠方法模式

工廠方法模式解決的是,不像簡單工廠似的,要增加產品必須改工廠類的 實現思路是,1.抽象工廠類 2.抽象產品類 3.具體工廠類 繼承抽象工廠類 4.具體產品類 繼承抽象產品類 5.外界呼叫。1.抽象工廠類 建立抽象工廠類 abstract class factory2.抽象產品類 建立抽象產品類 ab...