一,概述
  在软件开发的过程中经常会有这种需求,为了达到不同的效果和目的,经常变换类对象,而这些类所要实现的接口对象相对稳定,这种情况就要考虑到简单工厂模式
二,简单工厂模式的组成:
1.工厂类:负责根据不同的逻辑产生不同的对象实例
2.抽象产品类:一般是具体产品类要继承的父类或者是要实现的接口
3.具体产品类:继承了父类的子类或者是实现了接口的子类,是工厂类要创建的类
三,实例解说
 描述:公路的收费系统要根据不同的车型收取不同的费用
1.定义抽象产品接口:
   public interface Icalcute{
   public double calcuteresutl();
}
2.具体产品类实现了抽象产品接口
//车型为car
 public class car:Icalcute{
  public double calcuteresult()
{
return 33;
}
}
//车型为bus
  public class bus:Icalcute{
  public double calcuteresult()
{
return 100;
}
}
........可以有多个车型类
3.工厂类,根据不同的条件生成不同的车型类
public calss factory{
ICalcute cal;
public Calcute GetTypeobject(string type)
{
switch(type)
{
 
  case "car":
  cal=new car();
  break;
  case "bus":
  cal=new bus();
  break;
  ...........
}
return cal;  
}
}
客户端代码
public void main()
{
 ICalcute cal;
 factory fac=new factory();
 cal=fac.GetTypeobject("car");
 double fee=cal.calcuteresult();
}
缺点:违背了开发-封闭原则,如果要增加一个jeep车的收费,要增加一个jeep类,另外还要修改factory工厂类中的代码,增加一个case分支
posted on 2011-04-28 12:44  dezi  阅读(202)  评论(0编辑  收藏  举报