(转) 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中的简单 工厂模式: 女娲抟土造人话说:“天地开辟,未有人民,女娲抟土为人.”女娲需要用土造出一个个的人,但在女娲造出人之前,人的概念只存在于女娲的思想里面.女娲造人,这就 ...
随机推荐
- Android 启动APP时黑屏白屏的三个解决方案
你会很奇怪,为什么有些app启动时,会出现一会儿的黑屏或者白屏才进入Activity的界面显示,但是有些app却不会如QQ手机端,的确这里要做处理一下.这里先了解一下为什么会出现这样的现象,其实很简单 ...
- javascript正则表达式速查
声明:本文为原创文章,如需转载,请注明来源并保留原文链接前端小尚,谢谢! 作用 数据有效性验证 替换文本 提取文本 声明方式 字面量的声明方式 示例:var re = /a/gi; RegExp声明方 ...
- CodeForces 300C 最短路
A Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Submit Status Pr ...
- DP VK Cup 2012 Qualification Round D. Palindrome pairs
题目地址:http://blog.csdn.net/shiyuankongbu/article/details/10004443 /* 题意:在i前面找回文子串,在i后面找回文子串相互配对,问有几对 ...
- BZOJ4348 : [POI2016]Park wodny
首先特判全部都是A或者全部都是B或者$n=1$的情况. 然后把矩阵四周都填充上A,枚举一个块,分以下情况讨论: 1.在它四周选两个块扩展,此时平方暴力枚举即可. 2.在它四周选定一个方向扩展两步. 3 ...
- android 常用第三方包的代码混淆
首先在:project.properties 文件下,启动代码混淆 proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:pro ...
- Mono for Android 篇二 使用Spinner 实现下拉列表读取Browser.BookmarksUri
http://www.cnblogs.com/ivanyb/archive/2013/03/05/2944818.html 1.首先在VS2010里面创建一个Android Application 简 ...
- shell 之for [转]
本文也即<Learning the bash Shell>3rd Edition的第五章Flow Control之读书笔记之二,但我们将不限于此.flow control是任何编程语言中很 ...
- Spring整合Quartz实现持久化、动态设定时间
一.spring整合 网上一搜有很多整合的方式,这里我采用了其中的一种(暂时还没有对其他的方法研究过). 对于spring的整合其中的任务,spring提供了几个类.接口(这些类都实现了Job接口): ...
- prelaod场景,用来显示资源加载进度
phaser.js的源码可以到它在github上的托管里去下载,游戏要用到的图片声音等素材资源请点击这里下载.Phaser的使用非常简单,只需要引入它的主文件,然后在页面中指定一个用来放置canvas ...