大话设计模式1 简单工厂模式 的java代码实现
2014-08-08 19:39
711 查看
首先是Operation抽象类:
继承Operation的加法类:OperationAdd
继承Operation的减法类:OperationSub
继承Operation的乘法类:OperationMul
继承Operation的除法类:OperationDiv:
生成Operation的工厂类:OperationFactory
客户端类:
package yx.designpattern.simpleFactory; abstract class Operation { public double number1; public double number2; public double getNumber1() { return number1; } public void setNumber1(double number1) { this.number1 = number1; } public double getNumber2() { return number2; } public void setNumber2(double number2) { this.number2 = number2; } public abstract double getResult() throws Exception; }
继承Operation的加法类:OperationAdd
package yx.designpattern.simpleFactory; public class OperationAdd extends Operation { @Override public double getResult() { return number1+number2; } }
继承Operation的减法类:OperationSub
package yx.designpattern.simpleFactory; public class OperationSub extends Operation { @Override public double getResult() { return number1-number2; } }
继承Operation的乘法类:OperationMul
package yx.designpattern.simpleFactory; public class OperationMul extends Operation { @Override public double getResult() { return number1*number2; } }
继承Operation的除法类:OperationDiv:
package yx.designpattern.simpleFactory; public class OperationDiv extends Operation { @Override public double getResult() throws Exception { if(number2==0){ throw new Exception("除数不能为0"); } return number1/number2; } }
生成Operation的工厂类:OperationFactory
package yx.designpattern.simpleFactory; public class OperationFactory { public static Operation createOperation(char operation){ Operation oper=null; switch(operation){ case '+' : oper=new OperationAdd(); break; case '-': oper=new OperationSub(); break; case '*': oper=new OperationMul(); break; case '/': oper=new OperationDiv(); break; default: break; } return oper; } }
客户端类:
package yx.designpattern.simpleFactory; public class Test { public static void main(String[] args) { Operation oper; oper=OperationFactory.createOperation('/'); oper.number1=1; oper.number2=0; try { System.out.println(oper.getResult()); } catch (Exception e) { e.printStackTrace(); } } }
相关文章推荐
- 《大话设计模式》读书笔记(C++代码实现) 第一章:简单工厂模式
- 《大话设计模式》读书笔记(C++代码实现) 第一章:简单工厂模式
- JAVA:将反射技术应用于工厂模式(Factory)和单例模式(Singleton)的简单代码
- 大话设计模式 第1章 代码无错就是优? 简单工厂模式
- 大话设计模式c++实现之一 简单工厂模式
- 简单工厂(Simple Factory)模式的Java实现[00原创]
- 设计模式之—简单工厂方法(StaticFactory )-Java实现
- 大话设计模式-第1章代码无错就是优?-简单的工厂模式
- 模板设计模式,简单Java代码实现
- Java实现简单的工厂模式
- 《大话设计模式》之--第1章 代码无错就是优?----简单工厂模式
- 大话设计模式(C++实现)--简单工厂模式
- 一个java实现的简单工厂模式
- 大话设计模式java版--简单工厂模式
- 《大话设计模式》之--第1章 代码无错就是优?----简单工厂模式
- 大话设计模式3 装饰模式 的java代码实现
- 软件设计模式之简单的工厂模式(JAVA实现)
- 研磨设计模式解析及python代码实现——(一)简单工厂模式
- 追MM与设计模式的JAVA实现-简单工厂方法
- 设计模式:浅析 抽象工厂、工厂方法、简单(静态)工厂 java实现