4

程序代码获取信息然后做出决定。面向对象的代码告诉对象做事。

亚历克夏普

当我们使用工厂模式时,我们根据工厂类以外的类的属性做出决定,所以这不违反告诉,不问原则吗?

4

1 回答 1

3

不,我们不违反。

当我们告诉Factory 类创建一个对象实例时,所有的责任都在 Factory 类中。调用者不会影响具体类的内容。

Factory 类本身也没有违反该规则。它正在做它必须做的事情:根据给定的规则(让它被硬编码或外部设置,或者更复杂的东西)决定生成什么样的对象。但是每一点逻辑都在工厂方法中。

于 2013-07-26T07:57:55.737 回答