直接上代码:
1、实体基类如下:
public abstract class Entity {
public abstract void doWork();
}
2、2个实体子类如下:
public class EntityA extends Entity {
@override
public void doWork() {
System.out.println("EntityA --- doWork");
}
}
public class EntityB extends Entity {
@override
public void doWork() {
System.out.println("EntityB --- doWork");
}
}
3、工厂基类如下:
public abstract class Factory {
public abstract Entity doCreate();
}
public class FactoryA extends Factory {
@override
public Entity doCreate() {
return new EntityA();
}
}
public class FactoryB extends Factory {
@override
public Entity doCreate() {
return new EntityB();
}
}
5、客户端使用如下:
Factory factoryA = new FactoryA();
Entity entityA = factoryA.doCreate();
Factory factoryB = new FactoryB();
Entity entityB = factoryB.doCreate();
适用条件: 当一个类不知道它所必须创建的对象的类的时候,可适用此模式