工厂方法模式(Factory Method Pattern)
生活随笔
收集整理的這篇文章主要介紹了
工厂方法模式(Factory Method Pattern)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
水果店開業在即,小明需要去進貨,考慮到水果的種類和成本問題決定先去探訪一下貨源和價格,小明發現蘋果在A商那邊便宜2毛,西瓜在Z商那邊便宜3毛,榴蓮在C商那邊便宜4毛。這里每一個商販是一個工廠,每個工廠提供不同的水果,下面我們來介紹工廠方法模式
工廠方法模式(Factory Method Pattern):定義一個用于創建對象的接口,但是讓子類決定哪一個類實例化,工廠方法模式讓一個類的實例化延遲到其子類。
工廠方法模式是一個創建型模式,下面我們來看看他的結構圖:
工廠方法的實現:
Product(抽象產品):定義產品的接口,是所有產品對象的公共父類
interface Product {void TestMethod(); }Concrete Product(具體產品):實現抽象產品的具體產品
class ConcreteProduct : Product {public void TestMethod(){Console.WriteLine("Hello World!");} }Factory(抽象工廠):定義工廠的接口,它是工廠方法的核心所有的工廠都必須實現抽象工廠,并且返回產品
interface Factory {Product FactoryMethod(); }Concrete Factory(具體工廠):實現抽象工廠的具體工廠
class ConcreteFactory : Factory {public Product FactoryMethod(){return new ConcreteProduct();} }具體調用實現:
Factory factory = new ConcreteFactory(); Product product = factory.FactoryMethod(); product.TestMethod();工廠方法的優點:
1.工廠方法用來創建客戶所需的產品,同時還向客戶隱藏了具體產品實例化的細節
2.擴展性好符合開閉原則,新增一個具體產品或者具體工廠無需修改代碼,只需要添加到工廠即可
工廠方法的缺點:
1.每添加一種產品需要提供對應的工廠類,系統中的類成對增加,系統在編譯的時候會增加額外的開銷
2.增加了系統的抽象性和理解難度
適用環境
1.客戶端不知道它所需的對象的類
2.抽象工廠類通過其子類制定創建哪個對象
?
?
總結
以上是生活随笔為你收集整理的工厂方法模式(Factory Method Pattern)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UIImageView 上下和左右翻转
- 下一篇: 复习-网络编程之IP和端口号