设计模式学习笔记:抽象工厂和工厂方法的区别
Defines an interface for creating an object,but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses
Provide an interface for creating families of related or dependent objects without specifying their concrete classes
两个模式非常类似,那它们之间什么区别呢?
先总结下工厂方法模式:一个具体的工厂只产生一个产品的一个型号
打比方:食堂专门卖大混饨的窗口。(要买小馄饨?请不起请到隔壁小馄饨窗口)
那么抽象工厂方法呢:一个具体的工厂产生不同产品的不同型号。(为一个复杂业务提供所需的各种实例)
打比方:食堂A套餐窗口。可以叫红烧大排、米饭、青菜、罗宋汤。(要吃B套餐?对不起请到隔壁窗口...)
个人觉得不用太对结构的相似度去纠结,学习设计模式主要是理清经常出现的那些场景。