简单工厂模式--(大话设计模式大鸟和小菜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版)的主要内容,如果未能解决你的问题,请参考以下文章