簡單工廠模式解釋: 簡單工廠模式(Simple Factory Pattern)屬於類的創新型模式,又叫靜態工廠方法模式(Static FactoryMethod Pattern) 是通過專門定義一個類來負責創建其他類的實例,被創建的實例通常都具有共同的父類。 簡單工廠模式的UML圖: 簡單工廠模式 ...
簡單工廠模式解釋:
簡單工廠模式(Simple Factory Pattern)屬於類的創新型模式,又叫靜態工廠方法模式(Static FactoryMethod Pattern)
是通過專門定義一個類來負責創建其他類的實例,被創建的實例通常都具有共同的父類。
簡單工廠模式的UML圖:
簡單工廠模式中包含的角色及其相應的職責如下:
工廠角色(Creator):這是簡單工廠模式的核心,由它負責創建所有的類的內部邏輯。當然工廠類必須能夠被外界調用,創建所需要的產品對象。
抽象(Product)產品角色:簡單工廠模式所創建的所有對象的父類,註意,這裡的父類可以是介面也可以是抽象類,它負責描述所有實例所共有的公共介面。
具體產品(Concrete Product)角色:簡單工廠所創建的具體實例對象,這些具體的產品往往都擁有共同的父類。
簡單工廠模式解決的問題是如何去實例化一個合適的對象。
簡單工廠模式的核心思想就是:有一個專門的類來負責創建實例的過程。
具體來說,把產品看著是一系列的類的集合,這些類是由某個抽象類或者介面派生出來的一個對象樹。而工廠類用來產生一個合適的對象來滿足客戶的要求。
簡單工廠模式的優缺點分析:
優點:客戶端不需要修改代碼。
缺點: 當需要增加新的運算類的時候,不僅需新加運算類,還要修改工廠類,違反了開閉原則。
在大話設計模式中的例子:
1 public static Operation createOperate(string operate) 2 { 3 Operation oper = null; 4 switch (operate) 5 { 6 case "+": 7 { 8 oper = new OperationAdd(); 9 break; 10 } 11 case "-": 12 { 13 oper = new OperationSub(); 14 break; 15 } 16 case "*": 17 { 18 oper = new OperationMul(); 19 break; 20 } 21 case "/": 22 { 23 oper = new OperationDiv(); 24 break; 25 } 26 } 27 return oper; 28 } 29 }