简单工厂模式

Posted 322829

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单工厂模式相关的知识,希望对你有一定的参考价值。

1.建一个模板类(抽象类)(封装,让业务逻辑与界面逻辑分开,降低耦合度,更易维护和扩展)

/**

* 运算类

*/

public abstract class Operation

private double _numberA=0;[]

private double _numberB=0;

public abstract double GetResult() throws Exception;

public double get_numberA() return _numberA;

public void set_numberA(double _numberA) this._numberA = _numberA;

public double get_numberB() return _numberB;

public void set_numberB(double _numberB) this._numberB = _numberB;

2.将需要加工的类继承模板类(继承,让程序可以很灵活的修改和维护)

/**

* 加法类

*/

public class OperationAdd extends Operation

@Override

public double GetResult()

return get_numberA()+get_numberB();

/**

* 减法类

*/

public class OperationSub extends Operation

@Override

public double GetResult()

return get_numberA()-get_numberB();

/**

* 乘法类

*/

public class OperationMul extends Operation

@Override

public double GetResult()

return get_numberA()*get_numberB();

/**

* 除法类

*/

public class OperationDiv extends Operation

@Override

public double GetResult() throws Exception

double result=0;

if(get_numberB()==0)

throw new Exception("除数不能为0");

result=get_numberA()/get_numberB();

return result;

 

3.创建工厂类,将要加工的类放到工厂类里面去加工(多态,让程序能更好的扩展)

/**

* 运算工厂类

*/

public class OperationFactory

public static Operation createOperation(String operate)

Operation operation=null;

switch(operate)

case "+":

operation=new OperationAdd();

break;

case "-":

operation=new OperationSub();

break;

case "*":

operation=new OperationMul();

break;

case "/":

operation=new OperationDiv();

break;

return operation;

4.告诉工厂要加工的类,就能通过父类得到要加工的实例。

public class TestFactory

public static void main(String[] args) throws Exception

Operation operation=OperationFactory.createOperation("/");

operation.set_numberA(1);

operation.set_numberB(0);

System.out.println(operation.GetResult());

 

简单工厂模式:通过面向对象的三大特性封装、继承、多态让程序业务逻辑和界面逻辑耦合度低,程序更易维护和扩展。

以上是关于简单工厂模式的主要内容,如果未能解决你的问题,请参考以下文章

简单工厂工厂抽象工厂随记

关于js的设计模式(简单工厂模式,构造函数模式,原型模式,混合模式,动态模式)

设计模式---工厂方法模式

重温设计模式之 Factory

设计模式——抽象工厂模式

设计模式——抽象工厂模式