1.简单工厂模式
?
定義:類型屬于創建型模式,又叫靜態工廠方法模式。是由一個工廠對象決定創建出哪一種產品的實例。是工廠模式的特例。
優點:工廠類,根據外界給定的信息,決定究竟應該創建那個具體類的對象。調用時候不必管這些對象究竟如何創建和組織,明確了各自的職責和權利,有利于整體軟件體系結構的優化。
缺點:由于工廠類集中了所有實例的創建邏輯,違反了高內聚責任分配原則,將全部創建邏輯集中到一個工廠類中;如果需要添加新的類,則需要更改工廠類了。
因此一般只是很簡單的情況下應用。
實例:簡單計算器,運算工廠類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("除數不能為零!");}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;}}
頁面端調用:
?
?
轉載于:https://www.cnblogs.com/xyangs/archive/2012/07/02/2573054.html
總結
- 上一篇: 水芙蓉怎么养护 具体介绍一下
- 下一篇: servlet多线程