简单工厂模式-计算器控制台程序
来源:互联网 发布:mac怎么用校园网 编辑:程序博客网 时间:2024/06/05 03:41
编写一个简单的计算器程序,包含基本运算。要求面向对象语言。
题目看起来很简单,但由于要求使用面向对象语言,所以要将面向对象语言的三大特性全部体现出来才可以,而不是单单实现其功能。
关键点分析
- 对输入做判断
- 除数为0时
- 面向对象【可扩展,易复用,易维护】
通过封装,继承,多态降低程序的耦合度
简单工厂模式
即考虑用一个单独的类来做创造实例的过程。
所需的类
- Operation 运算类【定义运算所需的参数以及运算方法】
- AddOperation 具体的运算子类【expends Operation】
- OperationFactory 运算工厂类【创造具体实例】
- Application 相应的应用类【进行相应计算】
如此编写的代码在需要扩充功能或者修改代码时就十分方便了,如果需要增加根号类,则只需新增一个具体的运算类RadicalOperation和修改运算工厂类即可。从而使代码实现了面向对象的特性。
具体代码
1,Operation
public abstract class Operation { public double number_A; public double number_B; public double getNumber_A() { return number_A; } public void setNumber_A(double number_A) { this.number_A = number_A; } public double getNumber_B() { return number_B; } public void setNumber_B(double number_B) { this.number_B = number_B; } public abstract double getResult();}
2,AddOperation
public class OperationAdd extends Operation{//继承自Operation @Override public double getResult() { // TODO Auto-generated method stub double result = number_A + number_B; return result; }}
3,OperationFactory
/** * 运算工厂类 * @author Administrator * */public class OperationFactory { public static Operation createOperation(String operation){ Operation ope = null; switch (operation) { case "+": ope = new OperationAdd(); break; case "/": ope = new OperationDiv(); break; default: break; } return ope; }}
4,Application
public class Application { public static void main(String args[]){ Operation ope; ope = OperationFactory.createOperation("/"); ope.number_A = 6; ope.number_B = 3; System.out.println(ope.getResult()+""); }}
3 0
- 简单工厂模式-计算器控制台程序
- 简单工厂模式----控制台计算器的设计(C++实现)
- 计算器 --- 简单工厂模式
- 简单工厂模式-计算器
- 简单工厂模式计算器
- 简单工厂模式-计算器
- 简单工厂模式---计算器
- 简单工厂模式-计算器
- 利用简单工厂模式设计一个计算器的程序
- 软件设计目标—基于简单工厂模式的计算器程序
- 简单工厂模式-计算器程序设计
- 简单工厂设计模式计算器
- 用控制台实现简单的计算器程序
- 简单工厂模式之简单计算器实例
- 简单工厂模式 ,策略模式 实现计算器
- 简单的计算器程序可以用到简单工厂的设计模式
- 简单工厂方法模式-计算器实例
- 简单工厂模式的计算器(C++)
- Swift语法_字符和字符串
- 资本的力量-资本力量之前的阶段
- mysql 日期默认系统时间 mysql 默认值不支持函数
- 开发网站的资源
- Mac OSX 调用 JNI
- 简单工厂模式-计算器控制台程序
- 第一章链表
- Contiki packetbuf原理
- Git教程网站
- 安全测试之不安全的直接对象引用
- 空调制热没用?进来看看你就知道原因了
- 多线程——线程的生命周期
- Android自定View——可以设置宽高比例的ImageView
- web.xml详解