我們以做乙個計算器為例,給大家介紹簡單工廠的應用:
效果:
這裡我們使用 繼承 ,虛方法, 簡單工廠的設計模式來完成
首先,我們除了搭好窗體外,我們應該把我們的一些類準備好:
1.計算的父類calculation
using2.然後就是,加,減,乘,除 的子類system;
using
system.collections.generic;
using
system.linq;
using
system.text;
using
system.threading.tasks;
namespace
計算器_簡單工廠_
//第二個運算元
public
double numright
//運算子
public
string operator
//虛方法
public
abstract
double
cal();}}
01.加法類 add
using02.減法類 subsystem;
using
system.collections.generic;
using
system.linq;
using
system.text;
using
system.threading.tasks;
namespace
計算器_簡單工廠_}}
using03.乘法類 mulsystem;
using
system.collections.generic;
using
system.linq;
using
system.text;
using
system.threading.tasks;
namespace
計算器_簡單工廠_}}
using04.除法類 divsystem;
using
system.collections.generic;
using
system.linq;
using
system.text;
using
system.threading.tasks;
namespace
計算器_簡單工廠_}}
using3.最後就是準備 「簡單工廠」 的類system;
using
system.collections.generic;
using
system.linq;
using
system.text;
using
system.threading.tasks;
namespace
計算器_簡單工廠_
double result = numleft /numright;
return
result;}}
}
using4.一切準備好後,我們來看看在窗體中是如何用的吶!system;
using
system.collections.generic;
using
system.linq;
using
system.text;
using
system.threading.tasks;
namespace
計算器_簡單工廠_
//返回例項化的物件
return
calculation;}}
}
using我們來總結一下我們「簡單工廠」類的一些注意點吧:system;
using
system.collections.generic;
using
system.componentmodel;
using
system.data;
using
system.drawing;
using
system.linq;
using
system.text;
using
system.threading.tasks;
using
system.windows.forms;
namespace
計算器_簡單工廠_
private
void btncal_click(object
sender, eventargs e)
catch
(exception ex)
//顯示結果
label1.text =result.tostring();
}catch
(exception ex)}}
}
1.方法是靜態的,呼叫的時候不需要例項化
2.方法的返回值是父類 型別
3.方法是有參的
設計模式 1 簡單工廠
工廠生成物件類 public class operationfactory return opera 運算子基類 public abstract class operationclass public double numb public abstract double getresult 加號類 ...
設計模式 1 簡單工廠模式
簡單工廠模式屬於建立型的設計模式,其特點是使用乙個工廠生產所有的類物件,通過在工廠類中進行判斷,然後建立需要的功能類。優點 不必使用具體的功能類去建立該類的例項。缺點 新增乙個功能類就需要在工廠類中增加乙個判斷。此處利用 這4個operation來生成不同的operation物件來說明簡單工廠模式。...
設計模式 1 簡單工廠模式
總結簡單工廠設計模式就是為了能夠根據不同情況動態獲取到需要的型別 在本次將會演示乙個計算器的功能 我們無法知道使用者在程式中會輸入哪些字元,是 或者其他,但是我們能確定的是使用者需要通過輸入將兩個值進行運算,得到乙個返回結果。那麼在此處我們就可以建立乙個演算法基類,有設定值並計算後返回值的方法,值1...