简单工厂模式
简单工厂模式比较简单,原理是在工厂内部进行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