package com.zwy;
/*简单的工厂内通过switch case 来生成对象,不在由用户去 new ,将new 操作封装在了,createOperator的内部*/
public class SimpleFactory {
public static Operator createOperator(char operatorType){
Operator operator = null;
switch(operatorType){
case '+' : operator = new OperatorAdd(); break;
case '-' : operator = new OperatorSub(); break;
}
return operator;
}
/**
* main(简单的工厂类的思想)
* (这里描述这个方法适用条件 – 可选)
* @param args
*void
* @exception
* @since 1.0.0
*/
public static void main(String[] args) {
Operator operator = SimpleFactory.createOperator('+');
operator.setNumberA(1);
operator.setNumberB(99);
System.out.println(operator.getResult());
}
}
/*抽象类运算类*/
abstract class Operator{
public int NumberA;
public int NumberB;
public abstract int getResult();
public int getNumberA() {
return NumberA;
}
public void setNumberA(int numberA) {
NumberA = numberA;
}
public int getNumberB() {
return NumberB;
}
public void setNumberB(int numberB) {
NumberB = numberB;
}
}
/*加法运算*/
class OperatorAdd extends Operator{
@Override
public int getResult() {
return getNumberA() + getNumberB();
}
}
/*减法运算*/
class OperatorSub extends Operator {
@Override
public int getResult() {
return getNumberA() - getNumberB();
}
}