Мне очень нравятся шаблоны проектирования, но мне трудно понять, когда я могу их применить. Я прочитал много веб-сайтов, где объясняются шаблоны дизайна. Я понимаю большинство из них, но мне трудно распознать закономерность в моих собственных ситуациях.
Вот почему я задаю этот вопрос. Существуют ли какие-либо рекомендации / сигналы тревоги, когда использовать какой шаблон дизайна.
Например, если вы используете оператор switch, чтобы определить, какой объект вам нужно создать, вы, вероятно, захотите использовать шаблон проектирования фабрики. Таким образом, оператор switch в этом случае является «сигнальным звонком» для использования шаблона Factory.
Итак, знаете ли вы больше «тревожных звонков» для определения шаблона проектирования?
c#
design-patterns
Мартейн
источник
источник
Ответы:
Обычно все происходит наоборот. Не ищите ситуаций, в которых можно использовать шаблоны проектирования, ищите код, который можно оптимизировать. Когда у вас есть код, который, по вашему мнению, структурирован неправильно. попробуйте найти образец дизайна, который решит проблему.
Шаблоны проектирования предназначены для того, чтобы помочь вам решить структурные проблемы, не создавайте свое приложение только для того, чтобы иметь возможность использовать шаблоны проектирования.
источник
Изучите их, и постепенно вы сможете переосмыслить и понять, когда их использовать. Начните с чего-нибудь простого, например, шаблона singleton :)
если вы хотите создать один экземпляр объекта и только ОДИН. Вы используете шаблон singleton. Допустим, вы создаете программу с объектом параметров. Вам не нужно несколько таких, это было бы глупо. Синглтон гарантирует, что никогда не будет больше одного. Шаблон Singleton прост, используется много и действительно эффективен.
источник
Я полностью согласен с @Peter Rasmussen.
Шаблоны проектирования обеспечивают общее решение часто возникающих проблем проектирования.
Я хотел бы, чтобы вы следовали приведенному ниже подходу.
Полезные ссылки:
создание исходного кода : красиво объясняет намерения , структуру и контрольный список на нескольких языках, включая C ++ и Java
wikipedia : Объясняет структуру, диаграмму UML и рабочие примеры на нескольких языках, включая C # и Java.
Контрольный список и эмпирические правила в каждом шаблоне проектирования при создании исходных текстов содержат информацию, которую вы ищете.
источник