Как решить, к какому классу должен принадлежать метод? - PullRequest
1 голос
/ 04 августа 2020

У меня 3 класса:

  • product
  • product_list
  • и customer

* Класс 1014 * имеет список массивов, в котором хранятся product объектов.

Если у меня есть метод viewProduct, он должен принадлежать к классу customer или product_list?

Согласно моей собственной концепции, метод viewProduct должен принадлежать к классу customer, потому что покупатель просматривает продукты. Но с точки зрения кода, как метод в классе customer получает данные из класса product_list?

1 Ответ

0 голосов
/ 06 августа 2020

Класс - это структура данных, связанная вместе с алгоритмами, работающими над ней.

Таким образом, если вы решаете, где разместить метод, практическое правило таково: выберите класс, на чьи структуры данных он работает больше всего. Если вы сделаете это хорошо, он не должен даже напрямую обращаться к членам данных других классов, только к их методам.

Также из названия метода видно, что вы правы, что viewProduct должен принадлежать customer: если бы он принадлежал product, то имя viewProduct было бы избыточным. Тогда имя view было бы лучше.

В вашем примере ничего не говорится, как customer s относятся к определенным c product s. Например, если вы разрабатываете интернет-магазин, то customer s, скорее всего, выберет продукт из списка, созданного для них вашими контроллерами.

В вашей спецификации отсутствует механизм, как customer s относятся к товары. Подумайте об этом, и вы узнаете ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...