Java设计模式之简单工厂模式
来源:互联网 发布:paint it black 编辑:程序博客网 时间:2024/06/03 20:08
大话设计模式豆瓣地址:https://read.douban.com/reader/ebook/32943798/
考虑用一个单独的类来做这个创造实例的过程,这就是工厂。
前提准备:
public abstract class Operation {//操作类抽象类 public double numberA; public double numberB; public abstract double result();}
public class OperationAdd extends Operation {//加法类 @Override public double result() { return numberA + numberB; }}
public class OperationDiv extends Operation {//除法类 @Override public double result() { if (numberB == 0) { throw new RuntimeException("divided by 0"); } return numberA / numberB; }}
public class OperationMul extends Operation {//乘法类 @Override public double result() { return numberA * numberB; }}
public class OperationSub extends Operation {//减法类 @Override public double result() { return numberA - numberB; }}
简单运算工厂类:
public class OperationFactory {//操作类工厂类 public static Operation createOperation(char operator) { Operation operation = null; switch (operator) { case '+': operation = new OperationAdd(); break; case '-': operation = new OperationSub(); break; case '*': operation = new OperationMul(); break; case '/': operation = new OperationDiv(); break; default: throw new RuntimeException("unsupported operation"); } return operation; }}
客户端代码:
public class Calculator {//使用工厂方法生成实例完成运算操作 public static void main(String[] args) { Operation operation; char operator; operator = '+'; operation = OperationFactory.createOperation(operator); operation.numberA = 1.2; operation.numberB = 2.3; System.out.println(operation.result()); }}
运行结果:
3.5
最后,我们来看看这几个类的结构图:
阅读全文
1 0
- JAVA设计模式之工厂模式之简单工厂模式
- java设计模式之简单工厂模式
- java设计模式之简单工厂模式
- java设计模式之简单工厂模式
- java设计模式之简单工厂模式
- java设计模式之简单工厂模式
- Java设计模式之简单工厂模式
- 【Java设计模式】之简单工厂模式
- Java--设计模式之简单工厂模式
- java设计模式之简单工厂模式
- Java设计模式之简单工厂模式
- java设计模式之简单工厂模式
- Java设计模式之简单工厂模式
- Java设计模式之简单工厂模式
- Java设计模式之“简单工厂模式”
- Java设计模式之简单工厂模式
- JAVA设计模式之------简单工厂模式
- java设计模式之简单工厂模式
- DOM学习笔记(3)
- Java基础学习总结(2)—Java基本语法1
- 第一篇博客
- DeptSqlProvider(dao)
- Ubuntu/Linux Google chrome 无法打不开
- Java设计模式之简单工厂模式
- Android Studio下编译SDL库的步骤
- Fiddler简介
- gstreamer在linux ubuntu上实现音乐播放应用实例
- 蓝桥杯 算法提高 P0101
- EmpMapper(dao)
- Software Companions GerbView(PCB电路图设计查看工具)官方中文版64位V7.71下载 | gerbview注册码
- git配置
- 管理第一本启蒙书《别让猴子跳回背上》