设计模式之简单工厂模式
简单工厂模式
简单工厂模式属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。
简单工厂模式实例:
抽象运算类
package com.hml.factory.simple; public abstract class Operation { private int numberA; private int numberB; public int getNumberA() { return numberA; } public void setNumberA(int numberA) { this.numberA = numberA; } public int getNumberB() { return numberB; } public void setNumberB(int numberB) { this.numberB = numberB; } public abstract int getResult(); }
加法运算类:
package com.hml.factory.simple; public class AddOperation extends Operation { public int getResult() { return getNumberA() + getNumberB(); } }
减法类:
package com.hml.factory.simple; public class SubOperation extends Operation { public int getResult() { return getNumberA() - getNumberB(); } }
工厂类:
package com.hml.factory.simple; public class OperationFactory { public static Operation createOperate(String operate) { if ("+".equals(operate)) { return new AddOperation(); } if ("-".equals(operate)) { return new SubOperation(); } return null; } }
类图:
优点
创建对象时通过一个标识,就可以获取希望得到的对象,有助于对象的管理
缺点
每增加一个类,需要去修改工厂类,违背开放封闭原则,如果工厂类需要创建的对象很多,则工厂类会变的很臃肿
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步