1:模式讲解
1)简单工厂模式
例:加减乘除计数器
代码:
Operation运算类
1 Operation运算类 2 3 public class Operation 4 5 { 6 private double _numberA=0; 7 private double _numberB=0; 8 public double NumberA 9 { 10 get{ return _nubmerA; } 11 set{ _nubmerA=value; } 12 } 13 public double NumberB 14 { 15 get{ return _nubmerB; } 16 set{ _nubmerB=value; } 17 } 18 public virtual double GetResult() 19 { 20 dobule result=0; 21 return result; 22 } 23 }
加减乘除类
加法类:
1 加法类: 2 public OperationAdd:Operation 3 { 4 public virtual double GetResult() 5 { 6 double result =0; 7 result=NumberA+NumberB; 8 return result; 9 } 10 }
减法类:
1 减法类: 2 3 public OperationSub:Operation 4 { 5 public virtual double GetResult() 6 { 7 double result =0; 8 result=NumberA-NumberB; 9 return result; 10 } 11 }
乘、除类:略
简单运算工厂类
1 简单运算工厂类 2 public class OperationFactory 3 { 4 public static Operation createOperation(string operate) 5 { 6 Operation oper=null; 7 switch(operate) 8 { 9 case "+": 10 oper=new OperationAdd(); 11 break; 12 case "=": 13 oper=new OperationSub(); 14 break; 15 略 16 } 17 return oper; 18 } 19 }
客户端代码
1 客户端代码 2 Operation oper; 3 oper=OperationFactory.createOperate("+"); 4 oper.NumberA=1; 5 oper.NumberB=2; 6 double result=oper.GetResult();
结构图:
优点:封装了各算法,修改其中一个算法不会影响到其他几个算;并且把业务和界面分离,做到了松耦合。
缺点:简单工厂模式只是解决了对象的创建问题,而且工厂本身包括了所有的算法。面对算法的时常改动,不适合使用简单工厂模式。
浙公网安备 33010602011771号