1) Кажется ли это разумным способом организации занятий?
Да, похоже. Помните, что LineItem
"ispartof" Account
, а сам Account
является частью Journal
. Вокруг нет никаких отношений наследования, у вас просто есть коллекция учетных записей в Journal
и коллекция LineItem
в Account
.
Единственная проблема, которую я вижу, связана с именами. Вы говорите, что класс LineItem
, а позже, что LineItem
- Transaction
. Может быть, вы должны подумать об этом. Почему ты не назвал это Transaction
? Вам нужно уточнить это, если класс был назван Transaction
?
В любом случае, потребности вашего приложения будут меняться со временем (будут расти со временем). Вероятно, вам нужно больше беспокоиться о том, как вы будете адаптировать его к будущим потребностям, а не сейчас, в которых требования ясны. Ваш второй вопрос связан с этим.
2) Я добавляю метод для просмотра только транзакций между
время выполнения указано start_date и end_date. Лучший способ может быть
хранить где-нибудь start_date и end_date, затем изменить Account для изменения
некоторые методы для получения параметров start_date и end_date, а затем
проверять даты lineitem при суммировании или перечислении его графиков работы. Являются
Есть ли другие подходы, которые я должен рассмотреть?
Обратите внимание на то, что вы снова использовали слово Transaction. Вы должны хранить атрибут date
в объектах LineItem
. Я думаю, что это разумный подход. Если вы не хотите постоянно изменять методы lookUp
, чтобы отследить все возможные атрибуты, которые вы можете искать, рассмотрите возможность создания класса Options
, в котором вы можете хранить параметры поиска, сохраняя все атрибуты, которые вы может понадобиться сейчас и в будущем.
Надеюсь, это поможет.