Factory Method模式可以由Template Method演变而来。用Template Method模式来构建生成实例的工厂,这就是Factory Method。
在Factory Method模式中,父类决定实例的生成方式,但是不决定具体要生成的类,具体的处理全部交给子类去负责。这样就可以将生成实例的框架(framework)和实际负责生成实例的类解耦。
类图
示例代码
Product(之定义抽象方法use的抽象类)
Factory(实现了create方法的抽象类)
IDCard(实现了use方法的类)
IDCardFactory(实现了createProduct、registerProduct方法的类)
Main(测试入口)
参考:《图解设计模式》