设计模式之简单工厂模式
来源:互联网 发布:金融一体机安装软件 编辑:程序博客网 时间:2024/06/16 17:48
简单工厂模式是属于创建型模式,又叫做静态工厂方法(static Factory Method)模式,但不输入23中GOF设计模式之一。简单工厂模式根据传入参数的不同,创建不同的产品类。
以下是简单工厂类的简单实现(java):
<1>定义一个Operation类,定义变量和返结果。
public class Operation {
protected double numberA = 0;
protected double numberB = 0;
public double getNumberA() {
return numberA;
}
public void setNumberA(float numberA) {
this.numberA = numberA;
}
public double getNumberB() {
return numberB;
}
public void setNumberB(float numberB) {
this.numberB = numberB;
}
public double getResult() {
double result = 0;
return result;
}
<2>定义四个产品类继承自Operation 类,这里是实现两个数的加减乘除。
public class OperationAdd extends Operation{
public double getResult() {
double result = 0;
result = numberA + numberB;
return result;
}
}
--------------------------------------------------------------
public class OperationSub extends Operation{
public double getResult() {
double result = 0;
result = numberA - numberB;
return result;
}
}
---------------------------------------------------------------
public class OperationMul extends Operation{
public double getResult() {
double result = 0;
result = numberA * numberB;
return result;
}
}
---------------------------------------------------------
public class OperationDiv extends Operation{
public double getResult() {
double result = 0;
if(numberB == 0) {
System.out.println("除数不能为0");
return -1;
}
result = numberA / numberB;
return result;
}
}
<3>定义工厂类SimpleFactory.
public class SimpleFactory {
public static Operation createOperation(String operate) {
Operation operation = null;
switch(operate) {
case "+":
operation = new OperationAdd();
break;
case "-":
operation = new OperationSub();
break;
case "*":
operation = new OperationMul();
break;
case "/":
operation = new OperationDiv();
break;
}
return operation;
}
<4>客户端程序,根据传入的操作符(参数)不同,创建不同的产品类。
public class Demo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Operation operate = SimpleFactory.createOperation("+");
operate.numberA = 5;
operate.numberB = 6;
System.out.println(operate.getResult());
}
}
- 设计模式 之简单工厂+ 工厂模式
- 设计模式之简单工厂设计模式
- 设计模式之简单工厂模式,工厂模式,策略模式
- 设计模式 之 简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂.
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- memcached下载地址 php 5.3~5.6
- C++ 虚函数表
- 安装工具的代理设置
- 在.net中调用无参及有参的存储过程
- 点击事件的参数问题
- 设计模式之简单工厂模式
- Xcode7.1(无效的URL)Invalid parameter not satisfying: URLString -- @ShinePug
- mysql中的子查询
- [Web前端]梳理-DOM.7. 选取元素.8.节点树
- 常规功能和模块自定义系统 (cfcmms)—022自定义grid列(6图标列)
- 以前blog地址
- 各种奇葩的BUG
- java中Set使用介绍
- Windows 环境下配置MXNET教程