策略模式與簡單原廠模式

來源:互聯網
上載者:User

標籤:

1,簡單原廠模式

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

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

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

 

2,策略模式

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

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

b) 有一個Context類來表示環境,Context擁有抽象的策略介面,它根據 TYPE參數來決定使用哪個策略。

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

 

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

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

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

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

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

策略模式與簡單原廠模式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.