java设计模式之简单工厂模式
2010-12-16 16:17
513 查看
为什么要用设计模式,这个我就不说了,原因很简单,因为它就是“美”。设计模式我也是刚开始学,现在将我写的一些模拟代码写下,以备日后学习研究提高使用。
首先说下简单工厂模式,这个模式通过一个简单计算器的例子实现。ok上代码
1。所有的计算器都能经过技术后得打计算结果。所以可以抽象出一个计算结果的方法
package com.yjck.simplefactory; /** * 操作的接口类,所有的具体实现类的接口类,定义了通用的方法 */ public interface Operation { /** * 获得计算后的结果 * @param a * @param b * @return */ public double getResult(double a,double b); }
2。基本的四则运算
package com.yjck.simplefactory; public class OperationAdd implements Operation { /** * @see Operation 加法计算 */ public double getResult(double a, double b) { return a+b; } } package com.yjck.simplefactory; public class OperationDiv implements Operation { /** * 除法运算 */ public double getResult(double a, double b) { // TODO Auto-generated method stub return a/b; } } package com.yjck.simplefactory; public class OperationMul implements Operation { /** * 乘法运算 */ public double getResult(double a, double b) { // TODO Auto-generated method stub return a*b; } } package com.yjck.simplefactory; public class OperationSub implements Operation { /** * 减法运算 */ public double getResult(double a, double b) { // TODO Auto-generated method stub return a-b; } }
3。工厂类,根据不同的运算方式生产不同的计算类
package com.yjck.simplefactory; /** * 简单工厂模式之工厂类 * 这个类根据操作类型的不同可以自由生成相应的处理类 */ public class Factory { public static Operation createOperation(String opt){ Operation operation = null; if("+".equals(opt)){ operation = new OperationAdd(); } if("-".equals(opt)){ operation = new OperationSub(); } if("*".equals(opt)){ operation = new OperationMul(); } if("/".equals(opt)){ operation = new OperationDiv(); } return operation; } }
4。客户端调用
package com.yjck.simplefactory; public class Run { /** * 主类,程序入口 */ public static void main(String[] args) { Operation operation = null; operation = Factory.createOperation("/"); double result = operation.getResult(1.00, 5.33); System.out.println(result); } /** * ********下面这些话是对简单工厂模式的总结******** * 和以往的java程序写法不同,简单工厂模式充分利用了java的 * 多态机制,成功的将具体的实现类进行了剥离,也就是进行了 * 解耦的操作,使得程序更加灵活,如果我们要对加法进行修改 * 就只需要在实现加法的类中进行修改,如果我们要增加一个计算 * 方法,只需要写一个具体的实现类,然后再factory类中加一个 * 分支语句就OK了。 * *********************************************** */ }
阅读更多
相关文章推荐
- Java 设计模式中,简单工厂、工厂方法、抽象工厂的区别
- Java简单工厂设计模式
- java设计模式之简单工厂模式
- java 设计模式-简单工厂
- Java设计模式 (1) — 简单工厂.doc
- java设计模式-简单工厂模式
- java设计模式--简单工厂模式
- Java实践之路(设计模式)——工厂模式(简单工厂)
- java设计模式之简单工厂模式
- Java设计模式之简单工厂模式
- java设计模式系列--简单工厂模式
- Java设计模式编程中简单工厂与抽象工厂模式的使用实例
- java设计模式之工厂模式(简单工厂,工厂方法,抽象工厂)
- java设计模式之简单工厂模式
- java设计模式-简单工厂模式
- 黑马程序员-Java _ 简单工厂设计模式(Plant Pattern)
- java 设计模式-创建模式之简单工厂模式
- Java设计模式之工厂模式——简单工厂
- JAVA设计模式——简单工厂(Simple Factory)模式
- java深入浅出设计模式----简单的工厂模式(一)----初学者容易犯的错误(二)