當前位置:
首頁 >
1.简单工厂模式
發(fā)布時間:2023/12/19
20
豆豆
?
定義:類型屬于創(chuàng)建型模式,又叫靜態(tài)工廠方法模式。是由一個工廠對象決定創(chuàng)建出哪一種產(chǎn)品的實例。是工廠模式的特例。
優(yōu)點:工廠類,根據(jù)外界給定的信息,決定究竟應該創(chuàng)建那個具體類的對象。調(diào)用時候不必管這些對象究竟如何創(chuàng)建和組織,明確了各自的職責和權利,有利于整體軟件體系結構的優(yōu)化。
缺點:由于工廠類集中了所有實例的創(chuàng)建邏輯,違反了高內(nèi)聚責任分配原則,將全部創(chuàng)建邏輯集中到一個工廠類中;如果需要添加新的類,則需要更改工廠類了。
因此一般只是很簡單的情況下應用。
實例:簡單計算器,運算工廠類OperationFactory,Operation運算父類,OperationAdd加法子類……,
?
Operation運算父類:
public class Operation{private double numA;public double NumA{get { return numA; }set { numA = value; }}private double numB;public double NumB{get { return numB; }set { numB = value; }}public virtual double GetResult(){double result = 0;return result;}}?
public class OperationAdd:Operation{public override double GetResult(){double result = 0;result = NumA + NumB;return result;}}public class OperationSub : Operation{public override double GetResult(){double result = 0;result = NumA - NumB;return result;}}public class OperationMul : Operation{public override double GetResult(){double result = 0;result = NumA * NumB;return result;}}public class OperationDiv : Operation{public override double GetResult(){double result = 0;if (NumB==0){throw new Exception("除數(shù)不能為零!");}result = NumA / NumB;return result;}}?
工廠類:
public class OperationFactory{public static Operation createOperate(string operate){Operation oper = null;switch (operate){case "+":oper = new OperationAdd();break;case "-":oper = new OperationSub();break;case "*":oper = new OperationMul();break;case "/":oper = new OperationDiv();break;}return oper;}}
頁面端調(diào)用:
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/xyangs/archive/2012/07/02/2573054.html
總結
- 上一篇: 水芙蓉怎么养护 具体介绍一下
- 下一篇: XML 读写(命名空间)