设计模式之简单工厂
来源:互联网 发布:金山画王软件 编辑:程序博客网 时间:2024/06/09 15:19
最近看《大话设计模式》 记录下,方面以后查看。
主要考虑可扩展性和可维护性
UML类图:
工程目录:
package com.burt.simplefactory;import java.util.Scanner;public class Main {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubOperatorFactory operatorFactory = new OperatorFactory();Operator operator;Scanner scanner = new Scanner(System.in);System.out.println("请输入运算符");operator = operatorFactory.createOperator(scanner.next());System.out.println("请输入A的值");operator.setA(scanner.nextDouble());System.out.println("请输入B的值");operator.setB(scanner.nextDouble());System.out.println("计算结果为:"+operator.getResult());}}
package com.burt.simplefactory;public class Operator {double A, B;public double getA() {return A;}public void setA(double a) {A = a;}public double getB() {return B;}public void setB(double b) {B = b;}public double getResult(){return 0.0;}}
在添加一个除法就加个case “/" ,增加一个DivOperator类就ok了,是不是很简单。
package com.burt.simplefactory;public class OperatorFactory {public Operator createOperator(String str){switch (str) {case "+":return new AddOperator();case "-":return new SubOperator();case "*":return new MulOperator();default:break;}return null;}}
package com.burt.simplefactory;public class SubOperator extends Operator {public double getResult(){return A-B;}}
package com.burt.simplefactory;public class MulOperator extends Operator {public double getResult(){<span style="white-space:pre"></span>return A*B;}}
package com.burt.simplefactory;public class AddOperator extends Operator {public double getResult(){return A+B;}}
0 0
- 设计模式 之简单工厂+ 工厂模式
- 设计模式 之 简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂.
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- java.sql.SQLException:Column count doesn't match value count at row 1
- 回溯法
- 固定点双线性插值算法
- TCP/IP,Http,Socket,XMPP的区别
- struts2工作流程图
- 设计模式之简单工厂
- 【iOS】网络加载图片缓存与SDWebImage
- 大矮子灰 烧纸灰 商会 用酒
- 指定浏览某浏览器
- VMware Workstation环境下安装增强工具
- hdu 不容易系列之(3)―― LELE的RPG难题
- ZOJ_3686_A Simple Tree Problem(线段树成端更新)
- [leetcode] Word Break
- cas入门之二十:cas审计日志Inspektr(下)