设计模式-工厂模式

xiaoxiao2021-02-28  52

简单工厂模式

定义:定义一个创建对象的接口,简单工厂模式又称静态工厂方法模式。

UML类图:①工厂类:根据传进来的参数标志创建具体子类。②抽象父类:具有公共功能的接口或抽象类。③具体子类:继承抽象父类,重写父类的公共方法,实现不同的业务逻辑。

案例:计算器

工厂类:

public class OperatorFactory { public static int[] OPERATOR_TYPES = {'+','-','*','/','s'}; public static SuperOperate createOperate(int operate){ SuperOperate superOperate = null; if(OPERATOR_TYPES[0] == operate){ superOperate = new AddOperate(); }else if(OPERATOR_TYPES[1] == operate){ superOperate = new AddOperate(); }else if(OPERATOR_TYPES[2] == operate){ superOperate = new AddOperate(); }else if(OPERATOR_TYPES[3] == operate){ superOperate = new AddOperate(); }else if(OPERATOR_TYPES[4] == operate){ superOperate = new AddOperate(); } return superOperate; } }

抽象父类:

public class SuperOperate { public double numberA; public double numberB; public double getResult(){ return 0.0; } public double getNumberA() { return numberA; } public void setNumberA(double numberA) { this.numberA = numberA; } public double getNumberB() { return numberB; } public void setNumberB(double numberB) { this.numberB = numberB; } }

具体子类:

/* * 面向对象:封装计算器类,子类继承父类,重写父类方法,实现多态,便于维护,扩展,灵活性强 */ public class AddOperate extends SuperOperate { @Override public double getResult() { return numberA + numberB; } }

优点:①扩展性好,如果想加一个新的业务逻辑,只需要新增一个具体子类。②只需要知道工厂类的创建对象方法的参数,就可以创建具体子类。

缺点:①新增业务逻辑时,每次都需要增加新的具体子类和工厂类逻辑,具体子类太多,维护困难。②简单工厂模式由于使用了静态工厂方法,造成工厂角色无法形成基于继承的等级结构。

 

 

 

 

转载请注明原文地址: https://www.6miu.com/read-2632737.html

最新回复(0)