Вопрос то как раз и возник, когда мне нужно было один объект заполнить данными, но эти данные надо было получить из БД. И вот тут делема и возникла.
1. Или я внутри метода, сделаю запрос и наполню свойство.
2. Или я сделаю запрос вне и передам его в объект, но тогда возникает вопрос, а чем мне такой класс, который только и можно, что наполнять извне.
Я создаю классы обычно по принципу одной модели. К примеру пользователь User у меня умеет создавать, получать, модифицировать данный таблицы в БД и выводить список.
Это не ООП, но это класс, в рамках которого реализована работа с конкретной одной сущностью - пользователь.
Ну а работа на чистом ООП, по мне, так это, вытащить данные (по разному), запихать их через класс Коллекций во множество объектов и где-то показать. Ну или передать потом, модифицированные объекты обратно в Коллекцию для сохранения в БД.
Я тоже подумал, что он избыточен поэтому вопрос и созрел. Я могу написать пару строк кода, а тк у меня уже создан класс Book, решил воспользоваться им. И все только усложнил)))))))))
Понял мысль, спасибо.
Получается, что проще модифицировать запрос к БД в одном классе, нежели делать по агрегации/композиции.
При любом раскладе один JOIN, гораздо лучше чем два линейных запроса и foreach. Мускул как минимум вернет сразу нужное в нужных пропорциях :)
Максим Федоров, ну допустим, не было этого свойства. Связь появилась позже. Ну или приделаем новую таблицу остатки товаров, которой тоже не было изначально задумано. Получается, проще переписать класс, добавив внутрь еще один JOIN / LEFT JOIN?
По стилям, я сам предпочитаю в одном файле, но мне ИНОГДА просто нужно делать исключения.