У меня путаница в отношении моделирования объектов, которую я проиллюстрирую на примере проекта простой библиотеки ссуд.
В библиотеке есть книги (по одной копии на каждую книгу, чтобы упростить задачу) и покровители.Патроны могут одолжить книгу, если эта книга не передана другому патрону.
Для этого потребуется 3 класса: Книга, Патрон и Кредит.
Книга будет иметь идентификатор и имя.Патрон будет иметь идентификатор и имя.У ссуды будут идентификатор, book_id, patron_id и дата ссуды.
Где будет определен метод ссуды и возврата?Это метод книги, меценат или кредитный объект?
Книга - это тот, кто получает деньги, покровитель - тот, кто дает книгу, а заем - тот, кто хранит все подробности о конкретной операции кредитования.
Зачем действительно нужен класс Займа?Конечно, таблица БД необходима с полями, упомянутыми выше, но с точки зрения инфраструктуры MVC (например, Symfony или Rails) это следует определять как модель?
Я знаю, что это простая и решаемая проблема,но после долгого отсутствия связи с oop design я не могу «правильно» рассмотреть эту проблему!