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)-单例模式,本篇将介绍简单工厂模式,也是比较容易理解的一种模式: 简单工厂模式简介 什么是简单工厂模式? 定义一个工厂类,它可以根据参数的不 ...
随机推荐
- 【百度地图JavaScript API】手机端浏览器定位的实现
[百度地图JavaScript API]手机端浏览器定位的实现 https://blog.csdn.net/xiao190128/article/details/72579476
- MVC入门教程二[第一个小Demo](转载)
本文目标 1.了解"模型"."视图"."控制器"的创建.调试和使用过程. 本文目录 1.创建模型 2.创建视图 3.创建控制器 4.调试 5 ...
- PHP基础知识(一)
The Basics Comparison operators Comparison operators are an often overlooked aspect of PHP, which ca ...
- SQL Server 2008 R2 清空数据库中ldf日志文件
/************************************************************ * Sql Server 2008 R2 清空数据库中ldf日志文件 * 将 ...
- vue - dist
描述:打包后准备上线的文件(需要服务器环境才能运行!!!)
- ZK框架笔记2、ZK框架安装、相关类库、web及zk配置
1.先去ZK官网注册一个账号 2.在MyEclipse菜单栏中Help----Eclipse Marketplace中搜索ZK Studio,点击install安装即可 3.相关类库 ...
- [Exception Spring 1] - Attribute value must not be null
java.lang.IllegalArgumentException: Attribute value must not be null at org.springframework.util.Ass ...
- 【MySQL】设置字符集UTF-8(解决)
1.检查你需要的字符集,GBK或者UTF8 2.数据库是否是UTF8, 3.数据表是否是UTF8 4.模板是否设置了UTF-8 以上都没设置错误,那么继续往下看: 进入目标数据库,使用语句: SHOW ...
- 在做和sap系统集成的一点心得
最这一个月和sap做集成,把主数据中的数据写入到sap系统中,做集成就离不开联调,平时开发中,一个复杂点的系统还容易出问题,涉及到两个系统,由于两个或多个系统来自不同的厂家,各个厂家的开发对业务的理解 ...
- 轻松学,浅析依赖倒置(DIP)、控制反转(IOC)和依赖注入(DI) 依赖注入和控制反转的理解,写的太好了。
轻松学,浅析依赖倒置(DIP).控制反转(IOC)和依赖注入(DI) 2017年07月13日 22:04:39 frank909 阅读数:14269更多 所属专栏: Java 反射基础知识与实战 ...