设计模式之简单工厂模式
来源:互联网 发布:ubuntu16下安装mysql 编辑:程序博客网 时间:2024/06/06 20:04
自己写的。可能有不对的地方,请指正,勿喷!!!
简单工厂模式,用的比较普遍,用一个类做工厂,实现一个方法。调用时通过参数判断实例化哪个类,当然返回的类是继承了一个类的子类
看例子吧
运算方法超类
package com.mode;/** * 计算器运算超类 * @author hao * */public class Caculator {/** 参数1 */public double numA;/** 参数2 */public double numB;/** * 获得结果 * @return 运算之后的结果 */public double getResult() {double result = 0;return result;}}
然后,加法类,乘法类,除法类继承之,实现getResult()方法
加法类:
package com.mode;/** * 加法 * * @author hao * */public class Addition extends Caculator {@Overridepublic double getResult() {return numA + numB;}}
乘法类:
package com.mode;/** * 乘法 * * @author hao * */public class Multiplication extends Caculator {@Overridepublic double getResult() {return numA * numB;}}
工厂类:生成我们所需要的运算对象
package com.mode;/** * 工厂类,生成运算方法 * @author hao * */public class Factory {/** * 获取运算方式 * @param 所需要的模式类型 * @return 返回运算对象 */public static Caculator getOperation(int mode) {switch (mode) {case Contants.Operation.ADDITION:return new Addition();case Contants.Operation.SUBTRACTION:case Contants.Operation.MULTIPLICATION:return new Multiplication();case Contants.Operation.DIVISION:default:break;}return null;}}
Main类,看效果
package com.mode;public class Main {public static void main(String[] args) {Caculator caculator = Factory.getOperation(Contants.Operation.ADDITION);caculator.numA = 1.2;caculator.numB = 2.5;System.out.println(caculator.getResult());}}
我们需要加法,直接在 getOperation传入加法的参数我们即可返回所需要的对象,如果需要增加运算方式,我们直接继承Caculator即可,然后在Factory中的switch中增加一个case段。。
- 设计模式 之简单工厂+ 工厂模式
- 设计模式之简单工厂设计模式
- 设计模式之简单工厂模式,工厂模式,策略模式
- 设计模式 之 简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂.
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- Mysql两种存储引擎的优缺点
- 成就DBA职业生涯(一)我应该成为一名DBA么?
- poj 3080 Blue Jeans
- 数据结构学习笔记 --- 排序(冒泡排序、快速排序)
- 一个完整的ldap操作的例子
- 设计模式之简单工厂模式
- 算法导论 6.5-8解答
- 实现Listbox中长按弹出ContextMenu效果
- Flowplayer 播放 音频
- 成就DBA职业生涯(二)我怎样得到第一份DBA工作?
- 线性表
- synchronized线程同步
- 百度终于开始收录这里的文章了
- 成就DBA职业生涯(三)得到第一份工作该怎样?