Наименование слоев и методов с одинаковыми именами - PullRequest
1 голос
/ 14 марта 2011

Я чувствую некоторую проблему при непосредственном запуске именования слоев и методов, как это происходит в следующем примере.

UserRepository, UserService, UserController

и методы

GetUserById, GetUserById и снова то же имя на контроллере.

Почему я повторяю их снова? и просто обернуть те же методы между слоями?

Ответы [ 2 ]

1 голос
/ 14 марта 2011

Это то, что вы получаете, когда у вас есть многоуровневая архитектура. Наличие суффикса улучшает читабельность вашего кода, поскольку дает четкое представление о том, к какому уровню относится этот класс.

В дополнение к методу, который вы перечислили, преимущества могут быть неочевидными, так как это простой получатель. Однако для сложных бизнес-методов, которые действительно «делают что-то» за кулисами, важность каждого уровня будет осознана.

Например, вариант использования «Зарегистрировать пользователя» будет иметь разные обязанности для каждого слоя. Контроллер может выполнить некоторые проверки, например, является ли электронная почта правильной, имя пользователя / пароль имеет правильный синтаксис, сервисный уровень может отправить подтверждение по электронной почте в верхней части конечно, проверяя, является ли пользователь уникальным или нет, и хранилище может сохранить его в каком-то месте, если все остальное в порядке.

Надеюсь, это поможет.

0 голосов
/ 14 марта 2011

Я думаю, что это признак плохого дизайна.Каждый слой должен говорить на своем языке со своими клиентами.И этот язык должен быть объектно-ориентированным.«ID-нотация» - это нечто за пределами мира ООП (и принадлежит миру C).

Старайтесь избегать идентификаторов и позволяйте объектам общаться друг с другом.Когда это будет сделано, ваши методы будут переименованы в нечто более объектно-ориентированное.

...