在开始直接命名图层和方法时,我觉得有点问题,如下例所示。
UserRepository,UserService,UserController
和方法
GetUserById,GetUserById和控制器上的同名。
为什么我要重新复制它们?并在层之间包装相同的方法?
答案 0 :(得分:1)
这就是你拥有分层架构时所获得的。使用后缀可以提高代码的可读性,因为它可以清楚地表明此类属于哪个层。
除了您列出的方法之外,其好处可能并不明显,因为这恰好是一个简单的吸气剂。然而,对于复杂的商业方法,在幕后真正“做事”的重要性将被实现。
例如,“注册用户”的用例对每一层都有不同的职责。控制器可能会进行一些验证,例如电子邮件是否正确,用户名/密码是否具有有效语法,服务层可能会在当前检查用户是否唯一的情况下发送确认电子邮件,并且存储库可能会将其保留到某个位置(如果所有内容)别的没问题。
希望有所帮助。
答案 1 :(得分:0)
我认为这是设计不佳的标志。每一层都必须与客户谈论自己的“语言”。这种语言必须面向对象。 “ID-notation”是OOP世界之外的东西(属于C-world)。
尽量避免使用ID并让对象相互通信。完成后,您的方法将被重命名为更面向对象的东西。