网上内容非常多,但是想一想,记下来,虽然不一定完全正确,但是肯定可以帮助理解以及使用 -- 献给不再年轻的自己
简单工厂:
SimpleFactory 负责对象的创建
如果增加一种product 类型,那么只需要修改SimpleFactory 的代码即可
问题是:client 通过工厂创建完product 之后无法动态的改变product 的行为
另外,违反了对修改关闭,对扩展开放的原则
工厂:
每种product 对应一个工厂,更确切的说是一种产品类型对应一个工厂
由工厂的子类决定实例化的类是哪一个,选择了哪个子类就决定了实例化的类是哪一个
如果新增一种产品,那么新产品实现Product 接口,创建一个对应的factory 类 即可。原有的factory 不需要做任何的修改。