Эти классы слишком детализированы? [закрыто]Javascript

Форум по Javascript
Ответить
Anonymous
 Эти классы слишком детализированы? [закрыто]

Сообщение Anonymous »

Я всегда застреваю в вопросах дизайна.
У меня есть класс-посредник, который размещает заказ от клиента. Он получает другие классы обслуживания в качестве зависимостей, каждый из которых имеет методы обслуживания, которые вызывают методы DAO и взаимодействуют с данными, возвращаемыми в классе обслуживания. Как вы можете видеть по именам моих классов, это довольно детализированные CartCheckoutService и CartProductGetterServcie, а не CartService (который будет содержать все методы, относящиеся к корзине).
Они настолько детализированы, что CartProductGetterService имеет метод для получения продукта по идентификатору, который вызывает метод DAO, содержащий мой SQL, однако, если бы я хотел получить продукт по другому полю, то на этом этапе Я бы рассмотрел возможность создания нового детального класса обслуживания, такого как CartProductDesecriptionService.
Я считаю, что слишком много обдумываю, просто чтобы попытаться предотвратить нарушение принципа разделения интерфейса, когда посредник не должен получать класс, у которого есть методы, которые посреднику не нужны.
Вместо этого я должен иметь CartService и передать CartService любому посреднику, которому нужно вызвать метод из CartService? Если я это сделаю, класс просто станет оболочкой моего DAO и не станет очень сплоченным классом. Или мне следует использовать какую-то гибридную версию? Вот мой код:
const orderPlacerMediator = new OrderPlacerMediator(
new CartCheckoutService(
new CartProductGetterService(
CartDAO,
req.session.shopUserId,
connection
),
CartDAO
),
new OrderPlacerService(
OrderDAO,
req.session.shopUserId
)
);


Подробнее здесь: https://stackoverflow.com/questions/798 ... o-granular
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»