【发布时间】:2016-04-06 14:41:08
【问题描述】:
我正在使用存储库模式与规范模式相结合来与服务网络交互(我更喜欢存储库而不是 DAO):正如此链接所示:http://thinkinginobjects.com/2012/08/26/dont-use-dao-use-repository/。
用户界面与控制器交互,控制器与服务交互,服务与存储库交互,规范为服务web做CRUD操作,可以说这是应用的全局架构,分层架构。
我很困惑,网络服务的端点接受值,但它不接受负数,我将它声明为 int 并且在 Java 中没有 unsigned int,所以现在它是最好在每个规范发出请求之前检查每个规范中值的有效性(因为我已经知道它会失败),或者只在服务内部??!!!我认为让每个规范检查它的价值更好,因为这样我有义务使用这个规范的每个服务来处理这个检查,同样我可以避免代码重复,如果每个规范不做检查,让该服务为它执行此操作,检查将在每个服务中重复,在我看来,这不利于代码重用。
将验证放在存储库中是否很好,如果测试失败会引发异常,服务将不会捕获它,并让控制器捕获它以通知用户他输入的内容。
我对 SRP(单一责任原则)有点困惑,通过这样做,每个规范都符合 SRP 吗??!!!! (我总是对 SRP 有疑问,我无法确切地弄清楚系统中每个类的职责是什么)。
这是一个适用于 Android 的应用程序,我们有意将其也作为 Web 应用程序(所以,我想以正确的方式来做,以最大限度地重用代码)。
如果我以虚假的方式进行操作,如果有其他更好的方法或其他方法,请让我现在:)
【问题讨论】:
标签: java validation repository-pattern single-responsibility-principle