在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象
工厂设计模式很好的解决了这些问题
第一步:建立一个抽象工厂
public abstract class EdgeFactory {
public abstract Edge createPerson(String name, int age, String sex);
}
第二步:建立具体工厂
public class ActorPersonFactory extends PersonFactory{
@Override
public Vertex createPerson(String name, int age, String sex) {
Actor actor = new Actor();
actor.setName(name);
actor.setAge(age);
actor.setSex(sex);
}
}
第三步:调用
new ActorPersonFactory().createPerson(name, age, sex);