这些年来,我不得不忽略了"告诉,不要问"OOP原则,因为我刚刚第一次了解它.
但是上下文是关于验证代码的讨论,该代码已经从ASP.NET Web表单页面转移到数据/业务对象中,并且没有"Validate()"方法,只是一个本身进行验证的save方法. (据说)提出了一个例外.我问为什么这是以这种方式设计的,我被引导到OOP的"告诉,不要问"原则,这是我从未听说过的,所以我们一起看了谷歌,我立即接受了教育.;)
然而,某些东西闻不到正确,不应该在将数据从用户转移到处理和/或收集的业务层之前清除数据,而不是反过来?我对如何做好设计感到困惑.
这似乎是规则"出来,不问"是关于你不应该问目标对象的状态下,目标对象的想法,并认为这一原则从来没有真正打算应用到数据传递到了目标对象.