从零开始学习设计模式——简单工厂模式
来源:互联网 发布:zepto.js与jquery区别 编辑:程序博客网 时间:2024/04/29 04:31
既然要写关于设计模式的文章,当然是从最简单的简单工厂模式,或者说静态工厂模式说起。一句话概括——简单工厂模式其实就是根据不同的条件由工厂类去实例化不同的实现类,在使用的时候,并不需要去关心实现类的内部方法具体是怎么实现的,只需要关心实例化了哪个类。
所以简单来说,简单工厂模式就是——对共性开放,对个性封闭。
我们来简单举个例子,假设我要做一个加减乘除算法,但是我并不关心算法的内部是怎么实现的,仅仅管关心自己实现的哪一种算法,首先需要一个被继承的算法类:
public abstract class Operation{ public abstract void operation(); }我在这儿直接就写成抽象类了,以提醒子类必须重写。
然后是加法类和减法类的具体实现:
public class OperationAdd extends Operation{ @Override public void operation() { System.out.println("实现了加法算法"); } }
public class OperationSub extends Operation { @Override public void operation() { System.out.println("实现了减法算法"); }}是用来实例化这个加法或者减法的工厂类:
public class OperationFactory { public static Operation createOperate(String operate){ Operation operation = null; switch (operate){ case "add": operation = new OperationAdd(); break; case "sub": operation = new OperationSub(); break; default: break; } return operation; }}最后就是使用啦:
public static void main(String[] args) { // TODO Auto-generated method stub Operation operation; operation = OperationFactory.createOperate("sub"); operation.operation(); }其实从这个例子就能看出来,静态工厂的缺点还是很明显的,那就是不符合“开放—闭合”模式,如果要新增或者删除一种算法,不但需要对算法类进行操作,还需要对工厂类进行操作,但好处也是显而易见的,就是将算法结构给剥离了出来,将方法的具体实现和引用进行了剥离。
0 0
- 从零开始学习设计模式——简单工厂模式
- 设计模式从零开始——简单工厂模式
- 设计模式学习—简单工厂模式
- 设计模式学习笔记——简单工厂模式、工厂方法模式、抽象工厂模式
- 学习设计模式——简单工厂
- 设计模式从零开始之简单工厂
- Head First 设计模式学习——简单工厂方法-工厂方法模式-抽象工厂模式
- JAVA设计模式学习4——简单工厂模式
- 设计模式学习1——简单工厂模式
- 设计模式学习笔记——简单工厂模式
- (@WhiteTaken)设计模式学习——简单工厂模式
- (@WhiteTaken)设计模式学习——简单工厂模式
- (@WhiteTaken)设计模式学习——简单工厂模式
- 一、简单工厂模式——设计模式学习笔记
- 《设计模式》学习笔记2——简单工厂模式
- 《设计模式》学习笔记2——简单工厂模式
- Java设计模式学习1—简单工厂模式
- 设计模式从零开始——工厂方法模式
- POJ1328-Radar Installation
- 关于在MySQL中实现upsert操作
- Generate Parentheses
- Singleton Pattern
- 基于SQL语句的断码查询
- 从零开始学习设计模式——简单工厂模式
- ST表的应用(poj--3368)
- Factory Pattern
- GAME TIMERS: ISSUES AND SOLUTIONS.
- Swing线程之SwingUtilities.invokeLater解释
- Swap Nodes in Pairs
- Swing之JList的使用
- java中TextArea和JTextArea的自动换行和滚动条
- swing JList JScrollPane使用时不显示数据的问题 JList设置可多选