简单工厂里的工厂类就是生产对象的类,简单工厂里运用到了里氏替换原则,即父类可以替换出现在任何子类出现的地方。

简单工厂的好处:可以解决一类事物中,其子类的数量不定的问题。

解决方案:

  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();//加法调用

posted on 2013-07-09 11:10  Kelly_HanShuai  阅读(114)  评论(0)    收藏  举报