声明:本文为个人笔记,用于学习研究使用非商用,内容为个人研究及综合整理所得,若有违规,请联系,违规必改。
前言
参考大话设计模式书籍,进行简单工厂模式学习
一、简单工厂模式
定义:
简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。
二、实现
public class OperationFactory
{
public static Operation createOperate(string operate)
Operation oper = null;
switch(operate)
{
case"+":
operate = new OerationAdd();
break;
case"-":
operate = new OerationSub();
break;
case"*":
operate = new OerationMul();
break;
case"/":
operate = new OerationDiv();
break;
}
return oper;
}
}
Operation oper;
oper = OperationFactory.createOperate("+");
oper.NumberA = 1;
oper.NumberB = 2;
double result =oper.GetResult();
三、用途
工厂类负责创建的对象比较少;
客户只知道传入工厂类的参数,对于如何创建对象(逻辑)不关心;
由于简单工厂很容易违反高内聚责任分配原则,因此一般只在很简单的情况下应用。
游戏中生产不同怪物可以通过简单工厂模式,传入怪物类型生成对应.
四、优缺点
优点:
- 只用传入参数,让工厂类自己觉定并实现创建具体对象.外部不用管内部如何创建的.
缺点: - 工厂类集中了所有实例的创建逻辑,违反了高内聚责任分配原则,将全部创建逻辑集中到了一个工厂类中;它所能创建的类只能是事先考虑到的,如果需要添加新的类,则就需要改变工厂类了。(该缺点在工厂模式中通过工厂类提取抽象解决了)
总结
保持饥饿,保持愚蠢.
这世界唯一能够相信的就是你付出的努力和你走过的路.