【Java设计模式】之简单工厂模式
来源:互联网 发布:仙剑6优化好了吗 编辑:程序博客网 时间:2024/06/05 06:24
1. 简单工厂的结构图
2. 简单工厂的基本代码
运算类Operation
public class Operation {private double numberA=0; private double numberB=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;}public double getResult(){return 0;}}
加法运算类OperationAdd,继承自Operation
public class OperationAdd extends Operation {@Overridepublic double getResult() {double result = 0;result = getNumberA() + getNumberB();return result;}}
减法运算类OperationSub
public class OperationSub extends Operation {@Overridepublic double getResult() {double result = 0;result = getNumberA() - getNumberB();return result;}}
运算工厂类OperationFactory,创建运算对象。
public class OperationFactory {public static Operation createOperaction(String operate) {Operation oper = null;if("+".equals(operate)){oper = new OperationAdd();}else if("-".equals(operate)){oper = new OperationSub();}return oper;}}
客户端调用
public class ClientTest {public static void main(String[] args) {Operation oper = OperationFactory.createOperaction("-");oper.setNumberA(8);oper.setNumberB(6);double result = oper.getResult();System.out.println(result);}}
3. 说明
本示例运用到了面向对象的封装、继承、多态三大特性。运算类的运算结果方法是为封装,加法运算类继承自运算类是为继承,运算工厂类中根据传递进来的运算标志判断实例化加法运算类或减法运算类返回父类运算类的做法是为多态。
- JAVA设计模式之工厂模式之简单工厂模式
- java设计模式之简单工厂模式
- java设计模式之简单工厂模式
- java设计模式之简单工厂模式
- java设计模式之简单工厂模式
- java设计模式之简单工厂模式
- Java设计模式之简单工厂模式
- 【Java设计模式】之简单工厂模式
- Java--设计模式之简单工厂模式
- java设计模式之简单工厂模式
- Java设计模式之简单工厂模式
- java设计模式之简单工厂模式
- Java设计模式之简单工厂模式
- Java设计模式之简单工厂模式
- Java设计模式之“简单工厂模式”
- Java设计模式之简单工厂模式
- JAVA设计模式之------简单工厂模式
- java设计模式之简单工厂模式
- JsonHelper Json转xml,Json转DataSet,DataSet转Json
- flex 使用SuperTabNavigator设置选项卡字体大小
- 控制器接口Controller
- SQL注入与ASP木马上传
- 遗传算法
- 【Java设计模式】之简单工厂模式
- c函数scanf(),printf()等常用格式字符串
- 天晨设计整站SQL注入漏洞
- alarm()和pause()
- openfire开发笔记四-整合现有系统用户表
- php无限极分类的读取和图片上传代码
- 浅谈sql注入式(SQL injection)攻击与防范
- 如何解决source insight中文乱码的问题
- 一个简单的html5画板