大话设计模式5 工厂方法模式 的java代码实现
2014-08-12 13:45
477 查看
1,抽象运算类
2,加减乘除运算类
3,工厂接口
4,加减乘除工厂
5,客户端测试类
package yx.designpattern.factory; //抽象运算类 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; }
2,加减乘除运算类
package yx.designpattern.factory; //加法运算类 public class OperationAdd extends Operation { @Override public double getResult() { return number1+number2; } }
package yx.designpattern.factory; //减法运算类 public class OperationSub extends Operation { @Override public double getResult() { return number1-number2; } }
package yx.designpattern.factory; //乘法运算类 public class OperationMul extends Operation { @Override public double getResult() { return number1*number2; } }
package yx.designpattern.factory; //除法运算类 public class OperationDiv extends Operation { @Override public double getResult() throws Exception { if(number2==0){ throw new Exception("除数不能为0"); } return number1/number2; } }
3,工厂接口
package yx.designpattern.factory; // 工厂接口 public interface IFactory { public Operation createOperation(); }
4,加减乘除工厂
package yx.designpattern.factory; //加法工厂 public class AddFactory implements IFactory { @Override public Operation createOperation() { return new OperationAdd(); } }
package yx.designpattern.factory; //减法工厂 public class SubFactory implements IFactory { @Override public Operation createOperation() { return new OperationSub(); } }
package yx.designpattern.factory; //乘法工厂 public class MulFactory implements IFactory { @Override public Operation createOperation() { return new OperationMul(); } }
package yx.designpattern.factory; //除法工厂 public class DivFactory implements IFactory { @Override public Operation createOperation() { return new OperationDiv(); } }
5,客户端测试类
package yx.designpattern.factory; //客户端测试类 public class Test { public static void main(String[] args) { IFactory factory=new AddFactory(); Operation oper=factory.createOperation(); oper.number1=1; oper.number2=2; try { System.out.println(oper.getResult()+""); } catch (Exception e) { e.printStackTrace(); } IFactory factory1=new SubFactory(); Operation oper1=factory1.createOperation(); oper1.number1=1; oper1.number2=2; try { System.out.println(oper1.getResult()+""); } catch (Exception e) { e.printStackTrace(); } IFactory factory2=new MulFactory(); Operation oper2=factory2.createOperation(); oper2.number1=1; oper2.number2=2; try { System.out.println(oper2.getResult()+""); } catch (Exception e) { e.printStackTrace(); } IFactory factory3=new DivFactory(); Operation oper3=factory3.createOperation(); oper3.number1=1; oper3.number2=2; try { System.out.println(oper3.getResult()+""); } catch (Exception e) { e.printStackTrace(); } } }
相关文章推荐
- 大话设计模式2 策略模式 的java代码实现
- 《大话设计模式》java实现之工厂方法模式
- 大话设计模式3 装饰模式 的java代码实现
- [改善Java代码]用枚举实现工厂方法模式更简洁
- [编写高质量代码:改善java程序的151个建议]建议88 用枚举实现工厂方法模式更简单
- 《大话设计模式》读书笔记,附Java代码实现
- 大话设计模式4 代理模式 的java代码实现
- 大话设计模式1 简单工厂模式 的java代码实现
- java代码中实现字符编码转换(解决中文乱码问题)
- Jsp/Java代码分离.实现页面真正的代码分离 设计原理
- Java实现将Map转换为List的小代码
- Jsp/Java代码分离.实现页面真正的代码分离 实现框架代码:BasePage,TextBox,BasePageFilter
- Jsp/Java代码分离.实现页面真正的代码分离 实现框架代码,jxui:page标签
- java实现带HTML代码的文章摘要截取
- 一个直接用java类实现连接池的代码例子
- JAVA断点续传实现方法代码
- 实现高效的数据库连接池(附带完整代码C#和Java实现)
- 利用newxy(新坐标),不写一行java代码实现多项查询
- JAVA 实现多文件同时操作 程序代码