关于工厂方法和抽象工厂的区别
最近在看设计模式,工厂模式也是在开发中应用最多的一个,工厂模式分为简单工厂模式、工厂方法模式、抽象工厂模式三种。
简单工厂模式未能完全的支持开闭原则,因为当添加产品或删除产品是,需要对工厂方法进行修改,所以不完全符合开闭原则。
工厂方法模式在不用修改以前代码的前提下,可以新建一个产品类工厂,然后在客户端进行添加就行了,不用修改已有的代码,从某种程度上说是支持了开闭原则。然而另一种情景就是一个工厂可能会生产多种类型的产品,比如以前农民的土地里只生产粮食,现在生活要求高了,不但生产粮食并生产水果和肉类产品了。这时问题已经升级了,要用抽象工厂方法解决了
我没弄明白的是,工厂方法和抽象工厂方法其实是一样一样的,只是抽象工厂面临的是一个产品族而已,让人很是不解。希望告诉指点