1、创建接口
package test;
/**
* @author Joe
*
*/
public interface Operation {
int apply(int a ,int b);
}
2、实现接口
package test;
public class Addition implements Operation{
@Override
public int apply(int a, int b) {
// TODO Auto-generated method stub
return a+b;
}
}
3、创建工厂
package test;
public class OperatorFactory {
public Operation getOperation(String operatoryType) {
if(operatoryType == null) {
return null;
}
if(operatoryType.equalsIgnoreCase("addition")) {
return new Addition();
}
else if(operatoryType.equalsIgnoreCase("division")) {
return new Division();
}
return null;
}
public static int usingFactory(int a,int b,String operatory) {
OperatorFactory of = new OperatorFactory();
Operation op = of.getOperation(operatory);
int result;
try {
result = op.apply(a, b);
} catch (NullPointerException e) {
// TODO: handle exception
System.err.println("Invalid Operator");
result = -1;
}
return result;
}
}
4、测试
package test;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(OperatorFactory.usingFactory(13, 15,"additi"));
}
}