Java 设计模式01 - 简单工厂模式
先要学习设计模式之前的先看看一些基础 UML类图简单说明
可以先看看我的这篇博客: UML类图简单说明,学习编程思路的必会技能
接下来才是重点,开始我们的旅程吧.
一.UML类图展示

我们要用简单工厂模式 实现简易的计算器,看到上面的UML图估计你们都应该明白改创建那些类了,那我们就开始吧。
编程是一门艺术,所以编程切记不要拿着就开始写,一定要理清思路然后在开始行动.
二.开始编程
1. 根据UML类图的规划 ,我们首先创建抽象运算类 Operation (如果直接看这个不懂为什么是运算类是抽象类的可以看看上面我推荐的UML说明文章)
/**
* 操作类
*/
public class Operation { private double numA = 0;
private double numB = 0; public double getNumA() {
return numA;
} public void setNumA(double numA) {
this.numA = numA;
} public double getNumB() {
return numB;
} public void setNumB(double numB) {
this.numB = numB;
} /**
* 获取结果值
* @return
*/
public double getResult(){ double result = 0;
return result;
}
}
2.分别创建四个子类(加减乘除类)
/**
* 加法运算类
*/
public class AddOperation extends Operation { @Override
public double getResult() {
return getNumA() + getNumB();
}
}
/**
* 减法运算类
*/
public class SubOperation extends Operation { @Override
public double getResult() {
return getNumA() - getNumB();
}
}
/**
* 乘法运算类
*/
public class MulOperation extends Operation { @Override
public double getResult() {
return getNumA() * getNumB();
}
}
/**
* 除法运算类
*/
public class DivOperation extends Operation { @Override
public double getResult() {
try{
return getNumA() / getNumB();
}catch (Exception e){
return 0;
}
}
}
3.创建工厂类
/**
* 工厂类
*/
public class OperationFactory { public static Operation createOperation(String operate){ Operation operation = null;
switch (operate){
case "+":
operation = new AddOperation();
break;
case "-":
operation = new SubOperation();
break;
case "*":
operation = new MulOperation();
break;
case "/":
operation = new DivOperation();
break;
}
return operation;
}
}
4.使用
/**
* 简单工厂模式的用法
*/
public class Main { public static void main(String[] args) { Operation operation = OperationFactory.createOperation("/");
operation.setNumA(1);
operation.setNumB(3);
System.out.println("值:"+operation.getResult()); }
}
Demo: 下载地址
是不是很容易,自己敲下就好了.
Java 设计模式01 - 简单工厂模式的更多相关文章
- (1)java设计模式之简单工厂模式
一:简单工厂模式的优点 --->在阎宏博士的<JAVA与模式>一书中开头是这样描述简单工厂模式的:简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Fa ...
- Java设计模式(1)——简单工厂模式
简单工厂模式属于类的创建型模式,又叫做静态工厂方法模式.通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类. 一.模式中包含的角色及其职责 1.工厂(Creator)角色 简单 ...
- Java 设计模式之 简单工厂模式(静态工厂方法模式)
简单工厂模式(Simple Factory Pattern)属于类的创新型模式,又叫静态工厂方法模式(Static FactoryMethod Pattern),是通过专门定义一个类来负责创建其他类的 ...
- java设计模式之简单工厂模式
简单工厂: 简单工厂的优点: 1.去除客户端与具体产品的耦合,在客户端与具体的产品中增加一个工厂类,增加客户端与工厂类的耦合 2.封装工厂类,实现代码平台的复用性,创建对象的过程被封装成工厂类,可以多 ...
- Java设计模式之【工厂模式】(简单工厂模式,工厂方法模式,抽象工厂模式)
Java设计模式之[工厂模式](简单工厂模式,工厂方法模式,抽象工厂模式) 工厂模式出现的原因 在java中,创建一个对象最简单的方法就是使用new关键字.但在一些复杂的业务逻辑中,创建一个对象不只需 ...
- 设计模式之简单工厂模式Simple Factory(四创建型)
工厂模式简介. 工厂模式专门负责将大量有共同接口的类实例化 工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类. 工厂模式有三种形态: 1.简单工厂模式Simple Factory ...
- Java 设计模式之抽象工厂模式(三)
原文地址:Java 设计模式之抽象工厂模式(三) 博客地址:http://www.extlight.com 一.前言 上篇文章 <Java 设计模式之工厂模式(二)>,介绍了简单工厂模式和 ...
- Java中的简单工厂模式
举两个例子以快速明白Java中的简单 工厂模式: 女娲抟土造人话说:“天地开辟,未有人民,女娲抟土为人.”女娲需要用土造出一个个的人,但在女娲造出人之前,人的概念只存在于女娲的思想里面.女娲造人,这就 ...
- C#设计模式(2)-简单工厂模式
引言 上一遍中介绍了设计模式中的单例模式-C#设计模式(1)-单例模式,本篇将介绍简单工厂模式,也是比较容易理解的一种模式: 简单工厂模式简介 什么是简单工厂模式? 定义一个工厂类,它可以根据参数的不 ...
随机推荐
- 把mysql的数据导出成txt
把mysql的数据导出成txt select a from b into outfile '/sqlfile/a.txt'; my.ini里需要设置secure_file_priv = d:/sqlf ...
- C# 继承实现父类方法、重写、重载
继承是派生类(子类)去实现(重写<override>.重构<new>)基类(父类)的方法或属性.从而获取在派生类中要实现的功能. 子类调用父类构造方法,在父类中有个实现姓名和年 ...
- [Functional Programming ADT] Adapt Redux Actions/Reducers for Use with the State ADT
By using the State ADT to define how our application state transitions over time, we clear up the ne ...
- VS2013编译boost1.55库
1. 官网下载最新的Boost库,我的是1.55 2. 在使用vs2013编译boost-1.55.0之前,先要给boost做下修改: boost_1_55_0\boost\intrusive\det ...
- json.parse()使用过程中,肯能会出现的问题(Excel表中数据也存在类似问题)
如果使用json.parse()报如下的错误, Js错误: Jsp页面的显示的错误: 经分析显示:是由于某个字段的值存在换行符造成的 解决方案:只需要将存在换行符的字段重新编辑,使其不存在换行符即可. ...
- android精确绘制文字位置的方法
android 中使用Canvas的drawText绘制文本的位置,是基于基线的. 例如以下图: 当中字母Q的小尾巴在横线以下了. 怎么样找准字母的中心位置呢? 先看以下的样例:(右边的数字,表示字体 ...
- 串的匹配:朴素匹配&KMP算法
引言 字符串的模式匹配是一种经常使用的操作. 模式匹配(pattern matching),简单讲就是在文本(text,或者说母串str)中寻找一给定的模式(pattern).通常文本都非常大.而模式 ...
- Excle中range的一些用法
以下是一些range的简单用法 Sub aa() '-=============================================== '给B列设置填充颜色为黄色 Range(" ...
- XML的SelectNodes使用方法以及XPath(转)
XPath 是 XML 的内容,这里 SelectNodes 是 C# 中 XmlDocument 或 XmlNode 的一个方法.SelectNodes 使用 XPath 来选取节点. 重要语法 S ...
- 无需超级用户mpi多机运行
在之前的一篇博文中(Linux下mpi环境配置与运行步骤(Ubuntu为例) ),有讨论过怎样使用MPI在两个不同的机器上运行程序,在那篇博文中使用了超级用户权限.不幸的是.有些情况下,我们不能拥有操 ...