Например,
Я хочу разделить интернет-магазин на три части.
Пользователь: информация, относящаяся к пользователю, например, они входят в систему. выйти.
Связь: отправка электронной почты или рассылка модулей.
ShoppingCart: отображение заказа.
Хорошо, эти три модуля - основная функция моего маленького интернет-магазина.
Ясно, что пользователь вносит изменения, занимается своими собственными делами, например, пользователь меняет свою фотографию профиля (хорошо, я думаю, что не имеет смысла иметь фотографию профиля пользователя, просто подумайте, что это пример.)
пользователь --- вызов ---> пользователь
Но у меня здесь проблема, когда пользователь выполняет некоторые функции, которые требуют кросс-модульного вызова ....
Позвольте мне привести пример, если пользователь потерял пароль, ему нужно использовать метод связи, чтобы отправить ему новый пароль ... Ситуация будет выглядеть примерно так:
user ----call---> communication
Хуже ситуации использовать все модули, вот ситуация:
Пользователь использует график покупок, чтобы иметь дело со своими покупками, после этого он / она делает заказ, а счет использует коммуникационные модули для отправки пользователю.
user ----call---> shoppingCart ---call---> Communication
Следовательно, каждый модуль не является отдельным, все модули знают друг друга .... Но я не хочу этого делать, например, на этот раз я делаю новое приложение, например, я делюсь видео веб-сайт, который использует только «пользователь» и «общение», мне действительно не нужен «shoppingChart.», а новый видео модуль .....
Это нормально для меня "обновить" мой пользователь и метод связи, чтобы иметь дело с видео модулем, но вопрос в том, если я что-то исправляю, например, метод getFullName делает что-то неправильно, когда мне нужно «обновить» обратно приложение интернет-магазина, мне тоже нужно взять модуль «видео» .....
Что я хочу спросить, как разделить их ответственность и как сделать код более пригодным для повторного использования? Спасибо.