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

最后,我们来看看这几个类的结构图:


原创粉丝点击