Вы когда-нибудь были в команде, и вам нужно начать проект с нуля? Обычно это происходит во многих стартапах и других небольших компаниях. Существует так много разных языков программирования, архитектур и других проблем, что может быть трудно понять, с чего начать. Вот где появляются шаблоны проектирования.
Шаблон дизайна похож на шаблон для вашего проекта. Он использует определенные соглашения, и вы можете ожидать от них определенного вида поведения. Эти шаблоны были составлены из опыта многих разработчиков, поэтому они действительно похожи на различные наборы лучших практик. Вы и ваша команда решаете, какой набор лучших практик наиболее полезен для вашего проекта. Основываясь на выбранном вами шаблоне проектирования, вы все начнете ожидать, что код должен делать и какой словарный запас вы все будете использовать.
Шаблоны проектирования программирования могут использоваться на всех языках программирования и могут использоваться для любого проекта, потому что они дают только общее представление о решении. Существует 23 официальных образца из книги «Шаблоны проектирования - элементы многоразового объектно-ориентированного программного обеспечения», которая считается одной из самых влиятельных книг по объектно-ориентированной теории и разработке программного обеспечения. Я расскажу о четырех шаблонах дизайна здесь, чтобы дать вам некоторое представление о том, что такое некоторые шаблоны и когда вы их будете использовать.
Одиночный дизайн
Главное, что вам нужно знать о одноэлементном шаблоне, это то, что он позволяет классу иметь только один экземпляр и использует глобальную переменную для хранения этого экземпляра. Вы будете использовать отложенную загрузку, чтобы убедиться, что существует только один экземпляр класса, потому что он будет создавать класс только тогда, когда вам это нужно. Это предотвращает создание нескольких экземпляров. В большинстве случаев это реализуется в конструкторе.
Примером синглтона, который вы, вероятно, используете постоянно, является объект состояния в JavaScript. Если вы работаете с некоторыми интерфейсными средами, такими как React или Angular, вы знаете все о том, как состояние родительского компонента передается дочерним компонентам. Это отличный пример синглетонов в действии, потому что вам никогда не нужно более одного экземпляра этого объекта состояния.
Шаблон дизайна стратегий
Стратегия - это шаблон похож на расширенную версию оператора if else. Это в основном то, где вы делаете интерфейс для метода, который есть в вашем базовом классе. Этот интерфейс затем используется для поиска правильной реализации этого метода из одного из производных классов. Реализация в этом случае будет решаться во время выполнения на основе клиента.
Этот шаблон невероятно полезен в ситуациях, когда у вас есть обязательные и дополнительные методы для класса. Некоторые экземпляры этого класса не будут нуждаться в дополнительных методах, и это вызывает проблемы для решений наследования. Вы можете использовать интерфейсы для дополнительных методов, но тогда вам придется писать реализацию каждый раз, когда вы используете этот класс, поскольку реализации по умолчанию не будет.
Вот где шаблон стратегии спасает нас. Вместо того чтобы клиент ищет реализацию, он делегирует интерфейсу стратегии, и стратегия находит правильную реализацию.
Читайте статью дальше вот здесь