数据访问:'告诉,不要问'的例外?

时间:2009-08-02 16:05:13

标签: oop principles

数据访问对象是规则“告诉,不要问”的例外吗? 例如,从表数据网关获取最后10个帖子?

2 个答案:

答案 0 :(得分:8)

一个summary的Tell Do Not Ask说:

“你应该尽力告诉对象你想要他们做什么;不要问他们关于他们的状态的问题,做出决定,然后告诉他们该怎么做。”

在向数据对象询问信息的情况下,我认为我们不违反该原则。

考虑使用“人员”信息显示报告或UI。我没有看到“你叫什么名字?”的替代方案。请注意,我们不会跟进任何“告诉他们该做什么”。

答案 1 :(得分:3)

从技术上讲,当你向他们询问自己时,你是不是告诉他们告诉你一些事情?

OOP有时让我很头疼,我不知道什么时候停止思考并开始写作,或者停止写作并开始思考:X