您的位置:首页 > 编程语言 > Java开发

简单工厂设计模式

2013-11-02 22:51 357 查看
以一个简单的计算器代码为例,来述说简单工厂设计模式。

运算类:

public class Operator_factory {
  Operator oper;

       public Operator operator(String oper){

      switch(oper){

      case "+": 

      this.oper = new AddOperator();

      break;

      case "-":

      this.oper = new SubOperator();

      break;

      case "*":

      this.oper = new MulOperator();

      break;

      case "/":

      this.oper = new DivOperator();

      break;

      }

      return this.oper;

       }

}

加减乘除类:

//加

public class AddOperator extends Operator{

       public double getResult(){

      double result = 0;

      result = getStrNumberA() + getStrNumberB();

      return result;

       }

}

//减

public class SubOperator extends Operator{
public double getResult(){

    double result = 0;

    result = getStrNumberA() - getStrNumberB();

    return result;
}

}

//乘

public class MulOperator extends Operator{
public double getResult(){

    double result = 0;

    result = getStrNumberA() * getStrNumberB();

    return result;
}

}

//除

public class DivOperator extends Operator{
public double getResult(){
  double result = 0;
  if(getStrNumberB() == 0) System.out.println("除数不能为0!");
  result = getStrNumberA() * getStrNumberB();
  return result;
}

}

//这些类继承了Operator类,实现多态性。方便代码维护和扩展。

工厂类

public class Operator_factory {
  Operator oper;

       public Operator operator(String oper){

      switch(oper){

      case "+": 

      this.oper = new AddOperator();

      break;

      case "-":

      this.oper = new SubOperator();

      break;

      case "*":

      this.oper = new MulOperator();

      break;

      case "/":

      this.oper = new DivOperator();

      break;

      }

      return this.oper;

       }

}

测试类

public class Test {

public static void main(String[] args) {

    Operator oper = new Operator_factory().operator("+");  //根据实际情况,调用工厂方法实例化各个类

    oper.setStrNumberA(1);

    oper.setStrNumberB(1);

    System.out.println(oper.getResult());
}

}

工厂设计模式的好处:一是解耦,二是方便代码的维护和扩展。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  设计模式 java