Я думаю, что многие люди пытаются чрезмерно проектировать решения. Они используют подход «Адам и Ева», когда чуть более практичный подход значительно упростит ситуацию.
Специализированные классы не являются злом, они являются естественным следствием разумного проектирования программного обеспечения.
Многие программисты, на мой взгляд, не понимают этого, и я не знаю ни одной книги, в которой это было бы понятно.
Еще одна вещь, которая, безусловно, помогает, это TDD, которая позволяет вам понять, «как» вы будете использовать класс на практике, и во многих случаях может спасти день, потому что он показывает возможные проблемы / ограничения в начале дня.
Наконец, еще одна ОЧЕНЬ важная вещь, которую я бы искал, если бы я был вами, это шаблоны проектирования. Шаблоны проектирования - это то, как люди умнее вас или меня решают задачи программирования. Идея, лежащая в основе шаблонов, угадайте, что ?, заключается в том, что они не должны использоваться в качестве кулинарных книг, рецептов, которые вы просто подбрасываете, но вдумчиво и в первую очередь понимаете сферу применения.
Разумное использование шаблонов значительно уменьшит количество деталей, которыми вы должны управлять.
Хорошая библиотека шаблонов дизайна, созданная с учетом ваших потребностей, окажется бесценной. Давайте посмотрим на очень простой пример, чтобы поместить вещи в контекст:
представьте, что у вас есть форма, в которой при нажатии кнопки другие формы должны обновляться. Это типичная схема «наблюдателя». У вас есть субъект и несколько наблюдателей, которые регистрируют себя вместе с субъектом. Зачем вам нужно реализовать интерфейс? Вы можете просто добавить методы или, что еще лучше, использовать интерфейс для наблюдателей и общий список для предмета. Теперь вы получили лучшее из обоих миров: независимость для наблюдателей и никаких сумасшедших вещей на эту тему.
Надеюсь, это имеет смысл для вас!
Andrea