-1

是在调用层次结构的上层“仅”(主要)控制变量和参数,
还是
单独保存每个类以防止错误的参数更好,因为您不知道将来谁会调用它。

我此刻有点矛盾。但我倾向于写更多的 ifs 而不是让课程不受保护。

你怎么看?

4

2 回答 2

1

如果您指的是清理参数或实施业务规则,我认为您应该在专家模式背后应用相同的概念,即清理,在您拥有必要信息/知识的地方实施规则。

例如,在 MVC 应用程序中,应用程序的用户插入他的年龄,您可以验证控制器中的年龄是否为正(控制器应该具有的常识),但您只能验证用户介于指定此规则的模型层中某处的特定年龄。

于 2012-07-19T23:21:59.023 回答
1

如果您的方法是类的公共接口(公共或受保护)的一部分,那么您不能信任您收到的参数,因此您应该验证它们。另一方面,如果该方法是私有的,则您可以完全控制要传递的参数,并且如果您确定永远不会传递无效数据,那么您可以放心地假设它们始终是正确的,并避免使用任何代码来验证它们.

现在,除了您自己之外,任何人都可能不知道您系统的公共接口到底是什么。即使一个类具有公共方法,声明它们的类完全封装并且其他用户无法访问,可能无法扩展它或在给定上下文之外使用它,在这些情况下,您的封装级别可以帮助您决定您是否真正控制作为参数传递的内容,然后您可以决定在给定的上下文中验证数据是否更安全。但是,当您相信您可以忽略作为参数传递的内容时,您应该验证它,恕我直言。

于 2012-07-19T23:22:15.383 回答