設計模式 工廠方法模式

2021-06-22 14:08:23 字數 1838 閱讀 1344

框架的基礎知識

對框架的理解

框架和設計模式的關係

工廠方法模式

定義:

定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類,factory method使乙個類的例項化延遲到其子類。

結構:

//產品

public inte***ce product {}

//具體產品

public class productimpl implements product{}

//工廠

public abstract class factory

public class factoryimpl extends factory

}

理解工廠方法模式

工廠方法的實現中,父類通常會是乙個抽象類,裡面包含建立所需物件的方法,這些抽象方法就是工廠方法。注意:子類在實現這些抽象方法時,通常並不是真正由子類來實現具體功能,而是在子類的方法裡做選擇,選擇具體的產品實現物件。

也可以把父類實現成乙個具體類。這種情況下,通常是在父類中提供獲取所需物件的預設實現,這樣即使沒有具體的子類,也能夠執行。

通常這種情況下還是需要具體的子類來決定具體要如何建立父類所需要的物件。這種情況稱為工廠方法為子類提供了掛鉤(鉤子方法hook,詳見模板方法模式)。通過工廠方法,可以讓子類物件來覆蓋父類的實現,從而提供更好的靈活性。

工廠方法模式的本意,是由factory物件內部的方法來使用工廠方法建立的物件,也就是說,工廠方法一般不提供給factory外部使用。即:在工廠方法模式裡,客戶端要麼使用factory物件,要麼使用factory建立的物件,一般客戶端不直接使用工廠方法。當然也可以直接把工廠方法暴露給客戶端操作,但一般不這麼做

/**

*@function: 客戶端使用factory物件的情況

*/public abstract class factory

}

工廠方法模式與ioc/di理解ioc/di

依賴注入和控制反轉是對同一件事情的不同描述。

意義

ioc/di思想讓應用程式由主動變被動,被動的等待ioc/di容器來建立並注入它所需要的資源。這樣有效地分離了物件和所需要的外部資源,使得它們鬆散耦合,有利於功能復用,更重要的是使得程式的整個體系結構變得非常靈活。

工廠方法與ioc/di

思想相似,都是「主動變被動」,進行了「主從換位」,從而獲得了更靈活的程式結構

工廠方法模式的思考工廠方法模式是為克服簡單工廠的缺點(主要是為滿足開閉原則)而設計出來的,對設計原則的體現:依賴倒置原則

工廠方法模式優缺點

優點:連線平行的類層次

缺點:

設計模式 工廠方法模式

一 工廠方法 factory method 模式 工廠方法模式的意義是定義乙個建立產品物件的工廠介面,將實際建立工作推遲到工廠子類當中。核心工廠類不再負責產品的建立,這樣核心類成為乙個抽象工廠角色,僅負責具體工廠子類必須實現的介面,這樣進一步抽象化的好處是使得工廠方法模式可以使系統在不修改具體工廠角...

設計模式 工廠方法模式

1 factorymethod.h ifndef factorymethod h define factorymethod h include include using namespace std class osproduct 產品,product,產品的抽象類 class windowspro...

設計模式 工廠方法模式

描述一下工廠方法的概要 簡單工廠模式是要在工廠類中通過資料來做個決策,在工廠類中的多個類中例項化出來其中乙個要用到的類,做運算。而工廠方法模式則是他的乙個聰明的擴充套件,不在工廠類中做決策,而是把這個決策推遲到每個用到他的地方。等待使用的類庫 live類 public abstract class ...