HW05. Магазин книг. Громов Павел#4
Conversation
There was a problem hiding this comment.
- Пожалуй, не очень хорошо, что многие сущности подвешены и ни с какими другими не связаны никаким отношением.
CustomerServiceиPayServiceне просто используютсяCustomerController(как локальная переменная или каким-то другим способом). Кажется, чтоCustomerControllerагрегирует их. Мб, тут даже лучше подойдет более сильная связь -- композиция. Аналогично для других сущностей.- Когда будете поправлять предыдущий пункт, учтите, что дублировать ассоциации и поля не стоит. На ассоциациях вполне можно писать имя поля, посмотрите примеры.
- Не совсем понятно почему
OAuthCheckerагрегирует в себе все контроллеры. Из диаграммы можно предположить, что львиная часть логики Либо название не отражает суть, либо что-то напутано. - Почему-то у Вас не список желаемого (wishlist), а что-то про мытье (washlist)
- Вы уверены, что можно добавить книгу в список желаемого конкретного пользователя, не зная о нем ничего? Я про то, что
CustomerControllerникак не может вaddBookToWashListузнать ничего о пользователе. Мб, все-таки есть либо отношения между контроллерами, либо как-то данные должны передаваться. Вообще, это замечание распространяется на всю работу: хорошо, что используете существующие паттерны, не очень хорошо, что из-за этого многие детали скрываются и все слишком упрощается. - Вы точно уверены, что хранить пользовательские пароли в виде строки -- хорошая идея?)
- Мне непонятно как из
OAuthCheckerможно осуществить поиск по каталогу или по всей базе книг. - Только id недостаточно для добавления отзыва к книге (
CatalogService) - Я не нашел
PaymentMethod. Ок, предполагаю, что это какой-то enum: одного значения enum недостаточно, чтобы полностью описать метод оплаты. Например, при оплате банковской картой может потребоваться много информации. - Напоминаю, что должна быть возможность размещения администраторами редакторских отзывов. Одного
status: Booleanдля реализации этого точно недостаточно
Мне показалось, что неудобно будет, если от каждой
Всегда не понимал тонкую разницу между агрегацией и композицией, так как они очень похожи. Если я правильно понял (нагуглил), то это верно?
В общем, идея была такая, Сейчас сделал так: есть специальный контроллер, который принимает данные, проверяет, может ли выполнить данный запрос (проверяет логин/пароль пользователя). А после передает выполнение одному из контроллеров.
))))
Идея была в следующем: все необходимые данные приходят в запросе (как в REST), поэтому доставать пользователя из базы не было смысла, так как нам приходит его
Исправил как массив символов
Скорее всего Вы имели в виду
Добавил!
Добавил |
Да, агрегация -- это отношение "содержит", композиция -- это отношение "состоит из".
Это скорее общее замечание про то, что не стоит хранить пароли в виде строк и лучше хранить их в захешированном виде. Со всем остальным более менее согалсен, исправления засчитываю |
No description provided.