建立者模式之工廠方法模式

2021-08-11 03:37:11 字數 1739 閱讀 2624

工廠方法模式是簡單工廠模式的進一步抽象和推廣。由於使用了物件導向的多型性,工廠方法模式保持了簡單工廠模式的優點,而且克服了它的缺點。在工廠方法模式中,核心的工廠類不再負責所有產品的建立,而是將具體建立工作交給子類去做。

這個核心類僅僅負責給出具體工廠必須實現的介面,而不負責哪乙個產品類被例項化這種細節,這使得工廠方法模式可以允許系統在不修改工廠角色的情況下引進新產品。

ifactory

package creational.factorymethod;

public

inte***ce

ifactory

iproduct

package creational.factorymethod;

public

inte***ce

iproduct

concretefactorya

package creational.factorymethod;

public

class

concretefactorya

implements

ifactory

}

concretefactoryb

package creational.factorymethod;

public

class

concretefactoryb

implements

ifactory

}

concreteproducta

package creational.factorymethod;

public

class

concreteproducta

implements

iproduct

}

concreteproductb

package creational.factorymethod;

public

class

concreteproductb

implements

iproduct

}

client

package creational.factorymethod;

public

class

client

}

在以下情況下可以使用工廠方法模式:

+ 乙個類不知道它所需要的物件的類:在工廠方法模式中,客戶端不需要知道具體產品類的類名,只需要知道所對應的工廠即可,具體的產品物件由具體工廠類建立;客戶端需要知道建立具體產品的工廠類。

+ 乙個類通過其子類來指定建立哪個物件:在工廠方法模式中,對於抽象工廠類只需要提供乙個建立產品的介面,而由其子類來確定具體要建立的物件,利用物件導向的多型性和黎克特制代換原則,在程式執行時,子類物件將覆蓋父類物件,從而使得系統更容易擴充套件。

+ 將建立物件的任務委託給多個工廠子類中的某乙個,客戶端在使用時可以無須關心是哪乙個工廠子類建立產品子類,需要時再動態指定,可將具體工廠類的類名儲存在配置檔案或資料庫中。

設計模式 建立者 工廠模式

解決問題 當客戶需要手機 而不知道需要什麼型別的手機 就是對某一類需求,而不知道具體需求,用工廠模式可以做到靈活的滿足需求,按照客戶的需要 生產出對應的各種型別的手機 public inte ce phone public class motophone implements phone overr...

Java建立者模式之簡單工廠模式

簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法模式,但不屬於23種gof設計模式之一。gof是 四人幫 指gamma,helm,johnson vlissides,addison wesley四人 提出的23種設計模式 簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的例項。簡單工廠模式是工廠模...

建立者模式

當我們使用抽象工廠時,在客戶端進行呼叫的時候,如果產品的類別比較多,那麼此時工廠返回的例項物件將會很多。客戶端得 將會大大增加,這將不利於程式的可讀性。為了解決此類問題,可以把所有例項的建立放在乙個類中去生成,這樣在客戶端只需要呼叫這個建立者類,大大減少客戶端的 量。1,所有動物類的介面 packa...