定义:定义一个创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。
结构图如下:
示例代码:
public interface Operation {
void operate();
}
public interface IFactory {
public Operation CreateOperation();
}
public class AddOperation implements Operation {
@Override
public void operate() {
System.out.println("+");
}
public AddOperation() {
operate();
}
}
public class AddFactory implements IFactory {
@Override public Operation CreateOperation() {
// TODO Auto-generated method stub
return new AddOperation();
}
}
public class SubOperation implements Operation{
@Override
public void operate() {
// TODO Auto-generated method stub
System.out.println('-');
}
public SubOperation() {
operate();
}
}
public class SubFactory implements IFactory {
@Override
public Operation CreateOperation() {
// TODO Auto-generated method stub
return new SubOperation();
}
}
客户端示例代码如下:
public class Client {
public static void main(String[] args) {
Operation add = new AddFactory().CreateOperation();
Operation sub = new SubFactory().CreateOperation();
}
}
运行结果如下:
+
-