Я давно занимаюсь разработкой ПО
Судя по фразе
и я вижу в паттернах решение задач
нет. Вы еще не переболели болезнью джуна, прочитавщего книгу с паттернами
Правильный подход
все работают по принципу прибить гвоздями, а потом когда нужен будет развивать систему, что-нибудь придумаем.
Если стараться проектировать систему на уровне паттернов, получается хорошее решение
нет. Получается решение собранное из паттернов, а не решение задачи
мнения разные, от "не используйте паттерны, будет хуже" до "используйте их всегда", и есть кто посередине, "пишите сначала без паттернов, а потом упрощайте систему их внедрением".
Все три некорректны
Пишите код, который решает задачи. По возможности, масштабиремый, слабосвязный и тп.
Главная забота - решение поставленной задачи
А про паттерны можно поговорить на конференция