Factory Method模式(工厂方法)
这个模式我们有一个熟悉的名称,叫工厂模式,将生成实例的框架和实际负责生成实例的类解耦。
概念比较难理解,我大概用自己的语言总结一下,一个工厂,必然就有产品,假如就是一个大闸蟹吧,现在大闸蟹那么贵,以至于每一个大闸蟹都有一个身份验证码,由这个码我们可以查到地址、水质、健康状态等等信息。
现在有个问题,我们怎么生成这个码呢?也就是怎么生成大闸蟹这个类实例。
对于面向对象编程,我们习惯将万物化为对象,那么一个大闸蟹(Concrete Product)就是一个对象,也就是我们每生产一个大闸蟹都需要new Concrete Product 对象,再将很复杂的数据写进去,生成一个对象需要赋值很多数据。
对此,我们引入工厂模式,将这个工厂抽象为一个框架,并不负责实例的具体内容,工厂通过定义一个单独的创建对象的方法来解决,由工厂的子类实现这个方法,创建具体类型的对象。也就是创建大闸蟹由工厂统一负责,我们这些小贩没法处理。
示例代码:
public class FactoryMethodClient {
public static void main(String[] args) {
AbstractFactory factory = new AppleFactory();
factory.create("优质苹果");
factory.create("苹果");
factory = new TVFactory();