简单工厂里的工厂类就是生产对象的类,简单工厂里运用到了里氏替换原则,即父类可以替换出现在任何子类出现的地方。
简单工厂的好处:可以解决一类事物中,其子类的数量不定的问题。
解决方案:
1、创建一个抽象父类,代表这一类事物,里面定义了所有子类的属性,和一个操作虚方法。
2、创建各个子类,继承自上面创建的父类,并重新实现父类中的抽象方法。
3、创建简单工厂类,这个工厂里,有一个生产子对象的方法,方法的返回类型是上面创建的抽象父类,方法体具体实现返回具体的子类对象。
4、客户端调用的时候,首先用工厂创建对应的子对象,调用子对象对应的重写过父类方法的方法,满足客户的需要。
UML类图:

示例代码:
1、抽象父类:
public abstrate class Operation
{
public double NumberA{get;set;}
public double NumberB{get;set;}
public virtural double GetResult()
{
double result=0;
return result;
}
}
2、抽象子类:
public class OperationAdd:Operation
{
public override double GetResult()
{
return NumberA+NumberB;
}
}
public class OperationSub:Operation
{
public override double GetResult()
{
return NumberA - NumberB;
}
}
3、简单工厂类:
public class OperationFactory
{
public static Operation CreateOperation(string operateType)
{
Operation operation=null;
swich(operateType)
{
case "+":
operation =new OperationAdd();
break;
case "-":
operation =new OperationSub();
break;
}
return operation;
}
}
4、客户端调用:
Operation operation =OperationFactory.CreateOperation("+");
operation.NumberA=1;
operation.NumberB=2;
double result =operation.GetResult();//加法调用
浙公网安备 33010602011771号