简单工厂模式及工厂模式
来源:互联网 发布:薛定谔的猫 知乎 编辑:程序博客网 时间:2024/05/22 12:58
设计模式基本同时也是应用最广泛的就是工厂模式。
首先来看一个简单工厂模式:
public class OperateFactory{public static Operate createOperate(String operate){Operate of = new Operate();switch(operate){case "+":of=new AddOperate();case "-":of=new DeduceOperate();}return of;}}
public class Operate{protected int numA;protected int numB;}
public class AddOperate extends Operate{public int getResult(){int result = super.numA+super.numB;return result;}}
客户端
public static void main(String[] args) {Operate op = OperateFactory.createOperate("+");op.numA=1;op.numB=2;op.getResult();}
这是一个简单工厂模式,通过OperateFactory来实例化我们所需要的东西。假设增加乘法运算,修改工程类和增加一个MulOperate继承Operate即可。
简单工厂模式好处就是结构简单,能够实现代码复用,易于阅读。
下面我们在来看看工厂模式:还是实现以上功能。
public interface IFactory{public Operate createOperate();}
public class OperateAdd extends IIFactory{@Overridepublic Operate createOperate(){return new AddOperate();}}
同样,上边的Operate跟运算类不变
public class Operate{protected int numA;protected int numB;}
public class AddOperate extends Operate{public int getResult(){int result = super.numA+super.numB;return result;}}
客户端
public static void main(String[] args) {Operate op = OperateAdd.createOperate();op.numA=1;op.numB=2;op.getResult();}
简单看上去工厂模式要比简单工厂模式要麻烦些。同样,我们假设要增加一个乘法类该如何做?
我们只需新增一个OperateMul继承IFactory接口,和一个运算类就可以了,我们不需要在更改我们的工厂类了。
工厂模式好处就是将实例化交给了子类,工厂类不再包含逻辑运算。这样就实现了开放—封闭原则。简单工厂类每次我们都有修改工厂类,对该类来说修改时不封闭的。对于小型的系统来说简单工厂的可读性使得他更实用,但是对于大型系统来说,工厂模式更加适合。
- 简单工厂模式及工厂模式
- 工厂模式-简单工厂
- 工厂模式-简单工厂
- 工厂模式-简单工厂模式
- 工厂模式-简单工厂模式
- 简单工厂模式,工厂模式
- 工厂模式-简单工厂模式
- 简单工厂模式,工厂模式
- 简单工厂模式及实例
- 简单工厂模式及实例
- 简单工厂模式及实例
- 简单工厂、工厂模式、抽象工厂模式
- 简单工厂、工厂模式、抽象工厂模式
- 简单工厂&工厂模式&抽象工厂模式
- 简单工厂模式和工厂方法模式及实例
- 简单工厂模式和工厂方法模式及实例(总结)
- 大话设计模式之简单工厂模式、抽象工厂模式及工厂方法模式的比较
- 大话设计模式之简单工厂模式、抽象工厂模式及工厂方法模式的比较
- KNN学习笔记
- 打不如疼
- 求数组中元素的和
- 用正则表达式验证用户名密码
- SGU 253. Theodore Roosevelt
- 简单工厂模式及工厂模式
- 建立CE 连接
- C语言:sizeof(结构体)
- [Learning] SAM
- Java中两种字符串初始化方法的区别
- C语言实现出入栈操作
- chapter 2.1: 什么是windows Driver
- C#操作Word (1)Word对象模型
- struts2与ActionContext