简单工厂模式--(大话设计模式大鸟和小菜Java版)

Posted 香风智乃哈~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单工厂模式--(大话设计模式大鸟和小菜Java版)相关的知识,希望对你有一定的参考价值。

简单工厂模式:简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。(来自于百度百科)

这个文章也是为了让我能更好的学习所作,因此,就是把大话设计模式上的代码写成Java模式

这个例子是计算器的那个例子(实现了加减乘除)

//这是一个抽象类,里面定义两个实例变量和抽象方法,以便于后面代码的应用
public abstract class Operation {
    public double numberA;
    public double numberB;
    public abstract double result();
}

//继承抽象类,实现抽象方法,这个类所做的操作是两数相减的操作
class OperationSub extends Operation{

    @Override
    public double result() {
        return numberA - numberB;
    }
}

//和上面的描述一样,不过是实现两数相加的操作
class OperationAdd extends Operation{

    @Override
    public double result() {
        return numberA + numberB;
    }
}

//实现两数相乘的操作
class OperationMul extends Operation{

    @Override
    public double result() {
        return numberA * numberB;
    }
}

//实现两数相除的操作
class OperationDiv extends Operation{

    @Override
    public double result() {
//判断一下,除数是否为零
        if(numberB == 0){
            System.out.println("除数不能为0呀,老哥");
        }
        return numberA / numberB;
    }
}

//这个是一个工厂类
class OperationFactory{
    public static Operation createOperation(String operator){
//这个是作为结果返回的变量
        Operation oper = null;
//判断不同的条件
        switch(operator){
            case "+":
                oper = new OperationAdd();
                break;
            case "-":
                oper = new OperationSub();
                break;
            case "*":
                oper = new OperationMul();
                break;
            case "/":
                oper = new OperationDiv();
                break;
        }
        return oper;
    }
}

下面的是主方法的输出

import java.util.Scanner;

public class Calculator {
    public static void main(String[] args) {
        Operation operation;
        Scanner sc = new Scanner(System.in);
        String operator;
        System.out.println("请输入你想要进行运算的运算符:");
        operator = sc.next();
        operation = OperationFactory.createOperation(operator);
        System.out.println("请输入第一个数字:");
        operation.numberA = sc.nextFloat();
        System.out.println("请输入第二个数字:");
        operation.numberB = sc.nextFloat();
//这个是把得到的数进行格式化输出,我默认是保留两位小数
        System.out.printf("%.2f",operation.result());
    }
}

这就是简单工厂模式的例子了,使用的是计算器的例子,相对来说还是比较简单的。

以上是关于简单工厂模式--(大话设计模式大鸟和小菜Java版)的主要内容,如果未能解决你的问题,请参考以下文章

大话设计模式-工厂方法模式(大鸟和小菜java版)

大话设计模式-适配器模式(大鸟和小菜Java版)

大话设计模式-装饰模式(大鸟和小菜Java版)

大话设计模式-原型模式(大鸟和小菜java版)

大话设计模式-状态模式(大鸟和小菜Java版)

大话设计模式-建造者模式(大鸟和小菜java版)