(转) java 简单工厂模式(实现一个计算器)
package com.simpleFactory; /**
* 运算类
* @author Administrator
*
*/
public class Operation { private double numberA; private double numberB; public double getResultValue(){
return 0.0;
} public double getNumberA() {
return numberA;
} public void setNumberA(double numberA) {
this.numberA = numberA;
} public double getNumberB() {
return numberB;
} public void setNumberB(double numberB) {
this.numberB = numberB;
} }
package com.simpleFactory; /**
* 加法实现方式
* @author Administrator
*
*/
public class Addition extends Operation { @Override
public double getResultValue() {
return getNumberA() + getNumberB();
}
}
package com.simpleFactory; /**
* 减法实现方式
* @author Administrator
*
*/
public class Subtracter extends Operation { @Override
public double getResultValue() {
return getNumberA() - getNumberB();
}
}
package com.simpleFactory; /**
* 简单工厂类
* @author Administrator
*
*/
public class SimpleFactory { private Operation operation;
public Operation factoryOperate (String type ){ if ("+".equals(type)){ operation = new Addition();
}
else if ("-".equals(type)){ operation = new Subtracter();
}
return operation;
}
}
package com.simpleFactory; /**
* 简单工厂类 ,利用反射实现
* @author Administrator
*
*/
public class SimpleFactory_reflect { private Operation operation;
public Operation factoryOperate (String classType ){ try {
operation = (Operation)Class.forName("com.simpleFactory."+classType).newInstance();
} catch (Exception e) { e.printStackTrace();
} return operation;
}
}
重点的是在反射这里,通过反射机制可以不要在增加新功能时修改工厂类,只需要将新的方法函数名加进去就可以了。
(转) java 简单工厂模式(实现一个计算器)的更多相关文章
- !!转!!java 简单工厂模式
举两个例子以快速明白Java中的简单工厂模式: 女娲抟土造人话说:“天地开辟,未有人民,女娲抟土为人.”女娲需要用土造出一个个的人,但在女娲造出人之前,人的概念只存在于女娲的思想里面.女娲造人,这就是 ...
- Java简单工厂模式
Java简单工厂模式 在阎宏博士的<JAVA与模式>一书中开头是这样描述简单工厂模式的:简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Factory Method)模式.简 ...
- 设计模式(二)——Java简单工厂模式
简单工厂模式 案例: 披萨的项目(要便于披萨种类的扩展,要便于维护) 1)披萨的种类很多(比如 GreekPizz.CheesePizz 等) 2)披萨的制作有 prepare,bake, cut, ...
- JAVA简单工厂模式(从现实生活角度理解代码原理)
简单工厂模式(Simple Factory),说他简单是因为我们可以将此模式比作一个简单的民间作坊,他们只有固定的生产线生产固定的产品.也可以称他为静态工厂设计模式,类似于之前提到过静态代理设计模式, ...
- Java简单工厂模式以及来自lambda的优化
前言 设计模式是软件工程中一些问题的统一解决方案的模型,它的出现是为了解决一些普遍存在的,却不能被语言特性直接解决的问题,随着软件工程的发展,设计模式也会不断的进行更新,本文介绍的是经典设计模式 ...
- Java简单工厂模式(SimpleFactoryMode)
何为简单工厂模式? 由一个工厂类根据传入的参数,动态创建并返回相应的具体的实例! 三个构成元素: 1.工厂类 2.抽象产品 3.具体产品 优点: 1.提高扩展性 2.隐藏具体的实现类,并不需要知道产品 ...
- java 简单工厂模式实现
简单工厂模式:也可以叫做静态工厂方法,属于类创建型模式,根据不同的参数,返回不同的类实现. 主要包含了三个角色: A.抽象产品角色 一般用接口 或是 抽象类实现 B.具体的产品角色,具体的类的实现 C ...
- Java 简单工厂模式
首先 定义一接口 package com.org; public interface SampleInterface { public void print(String s); } 定义两个接口的实 ...
- Java中的简单工厂模式
举两个例子以快速明白Java中的简单 工厂模式: 女娲抟土造人话说:“天地开辟,未有人民,女娲抟土为人.”女娲需要用土造出一个个的人,但在女娲造出人之前,人的概念只存在于女娲的思想里面.女娲造人,这就 ...
随机推荐
- BZOJ4388 : JOI2012 invitation
注意到这个过程实质就是prim算法求最大生成树的过程. 首先通过离散化+线段树将$A+B$个点缩为上下各$O(n)$个点. 设已加入集合为$S$,未加入集合为$T$. 建立两棵线段树,维护所有在$T$ ...
- POJ 3661 (线性DP)
题目链接: http://poj.org/problem?id=3661 题目大意:牛跑步.有N分钟,M疲劳值.每分钟跑的距离不同.每分钟可以选择跑步或是休息.一旦休息了必须休息到疲劳值为0.0疲劳值 ...
- Java正则表达式教程
地址:http://www.java3z.com/cwbwebhome/article/article8/Regex/Java.Regex.Tutorial.html#reg0_1
- C#开发MySQL数据库程序时需要注意的几点
一:引用MySQL使用基于Parameter方式代码,总是提示:“Column '列名'cannot be null”解决 MySQL使用基于Parameter方式代码,总是提示:“Column '列 ...
- JAVA NIO异步通信框架MINA选型和使用的几个细节(概述入门,UDP, 心跳)
Apache MINA 2 是一个开发高性能和高可伸缩性网络应用程序的网络应用框架.它提供了一个抽象的事件驱动的异步 API,可以使用 TCP/IP.UDP/IP.串口和虚拟机内部的管道等传输方式.A ...
- Area Under roc Curve(AUC)
AUC是一种用来度量分类模型好坏的一个标准. ROC分析是从医疗分析领域引入了一种新的分类模型performance评判方法. ROC的全名叫做Receiver Operating Character ...
- ArcEngine 异常:field is not editable
字段不可编辑. Access数据库默认第一个字段为ID字段,不可修改.所以,在新建字段时,第一个字段为ObjectID字段,如果没有建立该字段,则把另外的字段作为 不可修改的ID字段,造成field ...
- thinkphp的html模板中if的使用
写的时候正好出错,我就纠结是{if}还是手册中的<if condition>,当然我使用的是手册中的用法,但是点击按钮时候还是没展开(if后的条件没执行).如图 试了好多写法,也检查了多次 ...
- C#生成日期流水账号
生成类似 LS14120002 private String GenNewOrder() { String newOrder; var orders = LYOrder.Items; String l ...
- C# - Lee 公共类库
我的公共类库 using System; using System.IO; using System.Net; using System.Security.Cryptography; using Sy ...