目的
定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory method是一个类的实例化延迟到其子类。
使用场景
- 当一个类不知道他所必须创建的对象的类的时候。
- 当一个类希望有他的子类来指定她所创建的对象的时候。
- 当类创建对象的职责委托给多个帮助子类中的某一个,并且你希望哪一个帮助子类时代理者这一信息局部化的时候。
具体描述
在学习这个模式的时候,我想到的第一个就是Java里面的List和Map这样的类。这些类都只是提供了一个一个接口,在这些接口下面对应的不是一个类,而是多个子类。在实例化生成子类的时候,我们一般使用下面的方式:
List<Integer> aList = new ArrayList<>();
List<Integer> lList = new LinkedList<>();
在这个例子里面,List就是我们定义的创建对象的接口,然后不同的子类ArrayList和LinkedList就决定了实例化哪一个类。
网友评论