设计模式-简单工厂模式
来源:互联网 发布:光棍节程序员闯关 编辑:程序博客网 时间:2024/05/21 11:16
1.设计计算的基类,封装计算的一些通用方法,所有类型的计算都继承这个基类
* 计算基类 * * @author WangPeng * * Operation.java 2015年9月28日 上午9:57:23 */public abstract class Operation { protected abstract double getResult(double numA, double numB) throws Exception;}
/** * 加法计算类 * * @author WangPeng * * OperationAdd.java 2015年9月28日 上午10:06:31 */public class OperationAdd extends Operation { @Override protected double getResult(double numA, double numB) { return numA + numB; }}
/** * 减法计算类 * * @author WangPeng * * OperationSub.java 2015年9月28日 上午10:08:20 */public class OperationSub extends Operation { @Override protected double getResult(double numA, double numB) { return numA - numB; }}
/** * 乘法计算类 * * @author WangPeng * * OperationMul.java 2015年9月28日 上午10:09:37 */public class OperationMul extends Operation { @Override protected double getResult(double numA, double numB) { return numA * numB; }}
/** * 除法计算类 * * @author WangPeng * * OperationDiv.java 2015年9月28日 上午10:10:34 */public class OperationDiv extends Operation { @Override protected double getResult(double numA, double numB) throws Exception { if (numB == 0) { throw new Exception("除数不能为0"); } return numA / numB; }}
/** * 工厂类 * * @author WangPeng * * OperationFactory.java 2015年9月28日 上午10:23:29 */public class OperationFactory { public static Operation createOperation(String operate) throws Exception { switch (operate) { case "+": return new OperationAdd(); case "-": return new OperationSub(); case "*": return new OperationMul(); case "/": return new OperationDiv(); default: throw new Exception("暂时不支持该类计算"); } }}
4.测试运行
/** * 测试类 * * @author WangPeng * * Test.java 2015年9月28日 上午10:16:37 */public class Test { public static void main(String[] args) { try { // 计算2 + 3 = ? Operation operation = OperationFactory.createOperation("+"); //输出5.0 System.out.println(operation.getResult(2, 3)); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
以上实现的是一种简单的工厂模式,通过这种模式可以降低代码的耦合,便于维护和扩展
0 0
- 简单工厂设计模式
- 设计模式-----简单工厂
- 简单工厂设计模式
- 设计模式:简单工厂
- 设计模式 - 简单工厂
- 设计模式 简单工厂
- 【设计模式】【简单工厂】
- 简单工厂设计模式
- 简单工厂设计模式
- 设计模式--简单工厂
- 简单工厂设计模式
- 简单工厂设计模式
- 设计模式------------简单工厂
- 设计模式--简单工厂
- 简单工厂设计模式
- 设计模式---------简单工厂
- 设计模式--简单工厂
- 简单工厂设计模式
- Eclipse安装Maven插件
- 账户密码正确,wordpress后台无法登陆问题
- Html中路径总结
- WPF中Style文件的引用——使用xaml代码或者C#代码动态加载
- linux的中swap分区的创建
- 设计模式-简单工厂模式
- C 语言中的指针和内存泄漏
- 使用rpm命令从CentOS系统盘安装计划任务程序crontab
- Sentinel模式下的主从切换
- rtmp 推送h264 + aac 的数据
- JavaScript高级程序设计学习笔记(1)
- java service wrapper封装Java应用为Windows服务
- Ubuntu下面的一个简单的C++程序——My first C++ demo in Linux
- opencv3.0的cv “ACCESS_MASK”冲突