using system;
using system.collections.generic;
using system.text;
namespace 工廠方法_計算器
set
}public
double numberb
set
}///
/// 得到運算結果
//////
public
virtual
double
getresult()
}///
/// 加法類
/// class operationadd : operation
}///
/// 減法類
/// class operationsub : operation
}///
/// 乘法類
/// class operationmul : operation
}///
/// 除法類
/// class operationdiv : operation
}///
/// 工廠方法
///inte***ce ifactory
////// 專門負責生產「+」的工廠
/// class addfactory : ifactory
}///
/// 專門負責生產「-」的工廠
/// class subfactory : ifactory
}///
/// 專門負責生產「*」的工廠
/// class mulfactory : ifactory
}///
/// 專門負責生產「/」的工廠
/// class divfactory : ifactory
}}
static void main(string args)
如果我現在需要增加其他運算,比如求m數的n次方,或者求m數的n次方根,這些功能的增加,在簡單工廠模式裡,我是先去加「求m數的n次方」功能類,然後去更改工廠方法,當中加「case」語句來判斷,現在用了工廠方法,加功能類沒問題,再加相關的工廠類,這也沒問題,但要我去更改客戶端,這不等於不但沒有減化難度,反而增加了很多類的方法。
簡單工廠模式的最大優點在於工廠類中包含了必要的邏輯判斷,根據客戶端的選擇
工廠方法模式 工廠方法模式
工廠方法模式是簡單工廠模式的公升級版,簡單工廠模式不符合設計模式的原則 即 單一職責,開閉原則 優點 職責明確,擴充套件方便 缺點 需要建立多個工廠 實現步驟 1.將工廠通用方法抽取介面 例如 ifactory 2.將產品抽取介面 例如 icar 3.實現各種產品 例如 baomacar,benti...
工廠方法模式 工廠方法模式 二
工廠方法模式是對簡單工廠的進一步抽象和封裝,需要新的類物件時不需要對既有工廠類進行修改,而是增加新的工廠類。工程類可以使用模版進一步封裝,由編譯器來生成 從而減少 編寫工作量。工廠方法的 c 實現01part產品抽象基類class animal virtual void show 0 02part產...
工廠方法模式(一) 簡單工廠方法模式
ps 第二篇學習部落格,堅持就是勝利。繼續設計模式的學習,記錄工廠模式,加深自己的理解。基本結構 abstractproduct 用來定義基本的商品的抽象 public abstract class abstractphoneproduct 用來實現抽象商品,生成各種商品 public class ...