設計模式 簡單工廠設計模式

2021-09-02 11:01:38 字數 1212 閱讀 1927

請用任意一種物件導向語言實現計算器控制台程式,要求輸入兩個數和運算符號,得到結果。

operation運算類

public class operation 

set}

public double numberb

set}

public virtual double getresult()

}

加減乘除類

using system;

public class operationadd : operation

}public class operationsub : operation

}public class operationmul : operation

}public class operationdiv : operation

else

return result;

}}

簡單運算工廠類

public class operationfactory

return oper;

}}

客戶端**

operation oper;

operation=operationfactory.creatoperate("+");

oper.numbera=1;

oper.numberb=2;

double result = oper.getresult();

充分使用了物件導向封裝、繼承、多型

優點:工廠類是整個模式的關鍵所在。它包含必要的判斷邏輯,能夠根據外界給定的資訊,決定究竟應該建立那個具體類的物件。使用者在使用時可以直接根據工廠類去建立所需的例項,而無需了解這些物件是如何建立以及如何組織的。有利於整個軟體體系結構的優化。

缺點:由於工廠類集中了所有例項的建立邏輯,這就直接導致一旦這個工廠出了問題,所有的客戶端都會受到牽連;而且由於簡單工廠模式的產品是基於乙個共同的抽象類或者介面,這樣一來,一旦產品的種類增加的時候,既有不同的產品介面或者抽象類的時候,工廠類就需要判斷何時建立何種種類的產品,這就和建立何種種類的產品相互混淆在了一起,違背了單一職責,導致系統喪失靈活性和可維護行。而且更重要的是,簡單工廠模式違背了「開發封閉原則」,就是違背了「系統對擴充套件開放,對修改關閉」的原則,因為當我新增加乙個產品的時候必須修改工廠類,相應的工廠類就需要重新編譯一遍。

設計模式 簡單工廠設計模式

也叫靜態工廠模式。簡單工廠模式是工廠模式家族中最簡單實用的模式,可以理解為是不同工廠模式的乙個特殊實現。工廠 creator 角色 簡單工廠模式的核心,它負責實現建立所有例項的內部邏輯。工廠類的建立產品類的方法可以被外界直接呼叫,建立所需的產品物件。抽象產品 product 角色 簡單工廠模式所建立...

簡單工廠設計模式與工廠設計模式

工廠設計模式的目的 降低呼叫者和實現者之間的耦合度。當需求發生變化 增加或改變 時,不改變原有 的結構。1.簡單工廠設計模式 優點 降低了呼叫者和實現者之間的耦合度。當引入乙個新的實現型別時,只需要增加乙個實現類,然後修改工廠類即可。缺點 只適用於層次結構較為簡單的情況。如果可能的實現型別很多,工廠...

設計模式 工廠模式(簡單工廠)

一 簡單工廠 定義 簡單工廠模式 factory pattern 屬於類的創新型模式,又叫靜態工廠方法模式 static factorymethod pattern 是通過專門定義乙個類來負責建立其他類的例項,被建立的例項通常都具有共同的父類。特點 工廠類直接實現,乙個產品介面,乙個工廠類可以產生多...