Совет по проектированию класса? Хочу написать класс по работе с балансом пользователя, метода, очевидно только 2: снять, пополнить. Вопроса 2: 1. Можно просто реализовать обычным классом а можно создать интерфейс, в нём прописать эти 2 метода, таким образом, класс обязан будет их реализовать, таким обзом я получу гарантию что в этом классе они реализованы. И всё интерфейс в этом случае не принесёт других бонусов? Чё-то как-то слишком просто )) 2. После пополнения баланса в некоторых случаях у юзера надо сдвинуть дату до которой разрешено использование определённой услуги. Я правильно понимаю, что эту функцию стоит реализовать в другом классе, т.к. это другой функционал, другая таблица БД, другой тип данных (дата а не деньги)
Да, в вашем случае использование интерфейса может быть излишним, так как у вас всего два метода, которые нужно реализовать. Интерфейсы обычно используются для определения шаблонов поведения, которые могут быть реализованы различными классами. Если у вас только один класс, который будет реализовывать эти методы, то создание интерфейса может показаться излишним.
Да, правильно будет вынести функционал сдвига даты до которой разрешено использование определенной услуги в другой класс. Это позволит вам разделить ответственности между классами и обеспечит более четкую структуру вашего программного кода. Возможно, этот функционал можно будет вынести в отдельный сервис или менеджер, который будет отвечать за управление датами и услугами.
Ответы на ваши вопросы:
Да, в вашем случае использование интерфейса может быть излишним, так как у вас всего два метода, которые нужно реализовать. Интерфейсы обычно используются для определения шаблонов поведения, которые могут быть реализованы различными классами. Если у вас только один класс, который будет реализовывать эти методы, то создание интерфейса может показаться излишним.
Да, правильно будет вынести функционал сдвига даты до которой разрешено использование определенной услуги в другой класс. Это позволит вам разделить ответственности между классами и обеспечит более четкую структуру вашего программного кода. Возможно, этот функционал можно будет вынести в отдельный сервис или менеджер, который будет отвечать за управление датами и услугами.