命名具有相同名称的图层和方法

时间:2011-03-14 00:03:42

标签: design-patterns language-agnostic

在开始直接命名图层和方法时,我觉得有点问题,如下例所示。

UserRepository,UserService,UserController

和方法

GetUserById,GetUserById和控制器上的同名。

为什么我要重新复制它们?并在层之间包装相同的方法?

2 个答案:

答案 0 :(得分:1)

这就是你拥有分层架构时所获得的。使用后缀可以提高代码的可读性,因为它可以清楚地表明此类属于哪个层。

除了您列出的方法之外,其好处可能并不明显,因为这恰好是一个简单的吸气剂。然而,对于复杂的商业方法,在幕后真正“做事”的重要性将被实现。

例如,“注册用户”的用例对每一层都有不同的职责。控制器可能会进行一些验证,例如电子邮件是否正确,用户名/密码是否具有有效语法,服务层可能会在当前检查用户是否唯一的情况下发送确认电子邮件,并且存储库可能会将其保留到某个位置(如果所有内容)别的没问题。

希望有所帮助。

答案 1 :(得分:0)

我认为这是设计不佳的标志。每一层都必须与客户谈论自己的“语言”。这种语言必须面向对象。 “ID-notation”是OOP世界之外的东西(属于C-world)。

尽量避免使用ID并让对象相互通信。完成后,您的方法将被重命名为更面向对象的东西。