策略模式與簡單工廠模式

2021-07-07 07:38:58 字數 1007 閱讀 1697

1,簡單工廠模式

a) 有乙個抽象的介面用來表示工廠需要生產的產品共性;然後各個具體的產品類實現該抽象介面。

b) 工廠只需要持有產品的抽象介面,工廠接收乙個 type 引數來決定生產何種產品。

c) 對於客戶而言,當他需要某種型別的產品時,只需要獲得工廠物件,然後將產品的 type引數傳遞給工廠,由工廠建立他所需要的產品。

2,策略模式

策略,本質上是一種演算法。當客戶需要處理某件事情時,由於所處的環境不同,他可以採取不同的方式(策略)去處理。因此,客戶關注的是如何方便得獲取所需的策略。

a) 有乙個抽象的介面用來表示策略的框架,它定義了基本的處理演算法。然後各個具體的策略實現該介面來擴充、實現相應的具體策略。

b) 有乙個context類來表示環境,context擁有抽象的策略介面,它根據 type引數來決定使用哪個策略。

c) 對於客戶而言,當他需要使用某種策略時,肯定所處在某個context上下文環境中,他傳遞乙個type引數給context,由context來負責使用何種策略。

3,簡單工廠模式與策略模式的比較

①策略模式與簡單工廠模式的結構圖基本一致,因此,二者的使用模式基本一致。

②簡單工廠模式的目的是建立物件,並使用所建立的物件去做事情(需要持有物件的引用);策略模式的目的是使用策略,即客戶只關注我需要某種策略,你提供乙個給我,我拿著該策略完成任務就行了(不需要持有策略的引用)。

③策略模式是定義一系列演算法的方法,這些演算法以不同的方式完成相同的工作,即演算法的實現不同。策略模式讓客戶以統一的方式來呼叫不同的演算法,將演算法的使用者與演算法解耦。

④簡單工廠模式定義如何獲得產品的方法,不同的產品具有不同的功能,簡單工廠模式解決了客戶如何有效地獲取他所關心的產品。對客戶而言,只需要持有乙個工廠物件,給工廠乙個產品的型別引數,讓工廠負責生產相應的產品即可。然後,客戶就拿著這個產品,進行方法呼叫,獲得相關的產品的功能。

策略模式與簡單工廠模式

1,簡單工廠模式 a 有乙個抽象的介面用來表示工廠需要生產的產品共性 然後各個具體的產品類實現該抽象介面。b 工廠只需要持有產品的抽象介面,工廠接收乙個 type 引數來決定生產何種產品。c 對於客戶而言,當他需要某種型別的產品時,只需要獲得工廠物件,然後將產品的 type引數傳遞給工廠,由工廠建立...

簡單工廠與策略模式

專門定義乙個類來負責建立其他類的例項,被建立的例項通常都具有共同的父類。它又稱為靜態工廠方法模式,屬於類的建立型模式。簡單工廠模式的實質是由乙個工廠類根據傳入的引數,動態決定應該建立哪乙個產品類 這些產品類繼承自乙個父類或介面 的例項。該模式中包含的角色及其職責 1 工廠 creator 角色 簡單...

簡單工廠模式 策略模式與工廠方法模式

用三種設計模式實現同一種功能 四則運算。三種設計模式相同的部分為四則運算類的設計,包括基類,加法運算類,減法運算類,乘法運算類和除法運算類,其 如下 class cclac class cclacadd public cclac class cclacsub public cclac class c...