您的位置:首页 > 其它

在工厂模式

2015-12-09 19:08 351 查看
一个简单的计算器的例子来形容叙事工厂模式

Operator公共接口

package com.iss.factory;

public interface Operator {

public int getResult(int x, int y);

}

Add.java

package com.iss.factory;

public class Add implements Operator{

@Override

public int getResult(int x, int y) {

// TODO Auto-generated method stub

return x+y;

}

}

Minus.java

package com.iss.factory;

public class Minus implements Operator{

@Override

public int getResult(int x, int y) {

// TODO Auto-generated method stub

return x-y;

}

}

Mul.java

package com.iss.factory;

public class Mul implements Operator{

@Override

public int getResult(int x, int y) {

// TODO Auto-generated method stub

return x*y;

}

}

Divide.java

package com.iss.factory;

public class Divide implements Operator {

@Override

public int getResult(int x, int y) {

// TODO Auto-generated method stub

return x/y;

}

}

OperatorFactory.class

package com.iss.factory;

public class OperatorFactory {

private static Operator operator = null;

public static Operator getOperator(String op) {

if (op == "+") {

operator = new Add();

} else if (op == "-") {

operator = new Minus();

} else if (op == "*") {

operator = new Mul();

} else if (op == "/") {

operator = new Divide();

} else {

return null;

}

return operator;

}

}

Test.java

package com.iss.factory;

public class Test {

public static void main(String[] args) {

Operator operator = OperatorFactory.getOperator("+");

System.out.println(operator.getResult(10, 20));

}

}

总结一下:这一事实的主要优点是面向对象的多态性此功能的工厂模式。当程序的实际执行情况将有多个选择状态!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: