工厂方法模式的介绍看这里:
https://blog.csdn.net/phs999/article/details/107028236
抽象工厂模式的介绍看这里:
https://blog.csdn.net/phs999/article/details/107125836
工厂方法与抽象工厂的区别在于,工厂方法是对产品维度的扩展,抽象工厂是对产品一族进行扩展。
同一产品族都是由同一个工厂生产的,位于不同的产品等级结构
产品族:美的生产的 洗衣机 空调属于同一产品族,在坦克大战里,坦克、炮弹、爆炸效果等属于一个产品族,不同的产品族可能对应了不同的界面效果。我们需要整体扩展一个界面UI的产品族时,可以使用抽象工厂设计模式。
产品等级结构:美的空调 格力空调 海尔空调 则属于同一产品等级结构。在坦克大战里,爆炸效果1、爆炸效果2则是产品等级结构层面的,我们需要扩展新的爆炸效果的时候可以用工厂方法设计模式。
工厂方法针对的是产品等级结构,抽象工厂模式针对的是产品族。
具体根据业务场景决定使用哪种设计模式。