简单工厂模式

简单工厂模式比较简单,原理是在工厂内部进行if判断或者switch判断进行实例化哪个类。

uml符号含义请看:https://blog.csdn.net/jalon2015/article/details/51003521

 第一步:封装,即抽象出超类

第二步:继承,即子类继承超类;

第三步:简单工厂,即实例化子类,返回子类;

第四步:客户端 根据参数类型来返回结果;

例子:

  //抽象类
  public abstract class cashSuper
  {
      //抽象方法:提供一些列的算法操作
      public abstract void acceptCash(string org);
  }

  //继承自抽象类
  public class  cashNormal  extends cashSuper
  {
      //具体方法:提供一些列的算法操作
      public double acceptCash(string org)

  {

     System.out.println("A类方法接受参数:"+org);

    }
  }

  

  //继承自抽象类
  public class  cashRebate  extends cashSuper
  {
      //具体方法:提供一些列的算法操作
      public  double acceptCash(string org)

  {  

     System.out.println("B类方法接受参数:"+org);

    }
  }

  

  简单工厂类

  //现金收取工厂
  public class CashFactory
  {
      //根据条件返回相应的对象
      public static AbsClass createCashAccept(string type)
      {
          cashSuper  cs = null;
          switch (type) //switch 支持的数据类型有6种
          {
              case "A":
                  cs = new cashNormal();
                  break;
              case "B":
                  cs = new cashRebate();
                  break;
              case "...":
                  ........ ....
                  break;

     default: 

      break;
          }
          return cs;
      }
  }

  客户端调用:

  利用简单工厂模式根据下拉选择框,生成相应的对象
  AbsClass csuper = CashFactory.createCashAccept("A");   //这里是区别策略模式的相似的地方,此处传递的是一个参数,在内部进行选取不同的对象。

  csuper.acceptCash("11"); 

  输出结果为:A类方法接受参数:11

 

  本文参照:https://blog.csdn.net/fwj380891124/article/details/7552305

posted on 2018-05-09 16:46  gfaraway  阅读(157)  评论(0编辑  收藏  举报

导航