客户端:
public class Client {
public static void main(String[] args) {
IFactory operFactory=new AddFactory();
Operation oper=operFactory.CreateOperation();
oper.NumberA=1;
oper.NumberB=2;
oper.GetResult();
}
}
工厂:
public interface IFactory {
Operation CreateOperation();
}
class AddFactory implements IFactory {
@Override
public Operation CreateOperation() {
return new OperationAdd();
}
}
class SubFactory implements IFactory {
@Override
public Operation CreateOperation() {
return new OperationSub();
}
}
class MulFactory implements IFactory {
@Override
public Operation CreateOperation() {
return new OperationMul();
}
}
class DivFactory implements IFactory {
@Override
public Operation CreateOperation() {
return new OperationDiv();
}
}
计算操作:
public abstract class Operation {
int NumberA;
int NumberB;
public abstract void GetResult();
}
class OperationAdd extends Operation{
@Override
public void GetResult() {
System.out.println("add");
}
}
class OperationSub extends Operation{
@Override
public void GetResult() {
System.out.println("sub");
}
}
class OperationMul extends Operation{
@Override
public void GetResult() {
System.out.println("mul");
}
}
class OperationDiv extends Operation{
@Override
public void GetResult() {
System.out.println("div");
}
}