написать впереди
Шаблоны проектирования — это набор методов организации кода, которые были обобщены и проверены предшественниками и подходят для конкретного развития бизнеса.Некоторые студенты могут подумать, что шаблоны проектирования бесполезны.Я должен указать, что шаблоны проектирования не всемогущи и подходят для конкретного развития бизнеса.Разработка бизнес-сценариев (играющих определенную руководящую роль в развитии нашего бизнеса, цель всех шаблонов проектирования в том, чтобы позволить разработчикам писать поддерживаемый и легко расширяемый код), по сути, вы использовали дизайн более или менее в вашем ежедневном шаблоне разработки вы просто не знаете названия (например, события привязки и триггерные события — это простой шаблон публикации-подписки).
Все шаблоны проектирования в этой статье написаны на языке JavaScript.Эти случаи являются относительно простыми, и цель состоит в том, чтобы помочь студентам, изучающим интерфейс, лучше понять шаблоны проектирования.
Чтобы лучше понять шаблоны проектирования, вам необходимо понять шесть принципов шаблонов проектирования: принцип единой ответственности, принцип открытости и закрытости, принцип подстановки Лисков, принцип инверсии зависимостей, принцип разделения интерфейса и закон Деметры, вы можете прочитать этоШесть принципов шаблонов проектирования.
Эта статья будет опубликована одновременно в Blog, Nuggets, segmentfault, Zhihu и т. д. Если эта статья будет вам полезна, не забудьте получить мою для меня.Персональный технологический проект блогаДайте звезду.
Шаблоны проектирования
Шаблон проектирования — это набор повторно используемых, наиболее известных, классифицированных сводок опыта проектирования кода.
Цель использования шаблонов проектирования: повторное использование кода, упрощение понимания кода другими и обеспечение надежности кода. Шаблоны проектирования делают программирование по-настоящему инженерным; шаблоны проектирования являются краеугольным камнем разработки программного обеспечения, как структура здания.
Заводская выкройка (Factory)
Определение. Простой фабричный шаблон — это способ решить, какой экземпляр класса создать, и эти экземпляры обычно имеют одинаковый интерфейс (свойства и методы).
Примеры: калькуляторы (сложение, вычитание, умножение, деление), продажа велосипедов (горный, дорожный), автоматы по производству напитков (кофе, молоко, вода), занятия в РПГ (воин, маг, стрелок).
Чтобы узнать больше об этом режиме, перейдите по этой ссылке
Паттерн синглтон (Singleton)
Определение: синглтон должен гарантировать, что класс имеет только один экземпляр. Метод реализации обычно заключается в том, чтобы сначала определить, существует ли экземпляр или нет. Если он существует, он будет возвращен напрямую. Если он не существует, он будет создан и возвращается, что гарантирует, что класс имеет только один объект-экземпляр. В JavaScript синглтон действует как поставщик пространства имен, предоставляя единую точку доступа к объекту из глобального пространства имен.
Например: модальное окно, управление входом в систему, управление выходом из системы.
Чтобы узнать больше об этом режиме, перейдите по этой ссылке
Режим стратегии (Стратегия)
Определение: структура стратегии, включая использование части (постоянную) и внедрение алгоритма (переменной) две части алгоритма.
Например: проверка формы (пустая ли она, длина, номер мобильного телефона, электронная почта и т. д.), расчет премии в конце года (зарплата, производительность)
Чтобы узнать больше об этом режиме, перейдите по этой ссылке
Прокси-режим (Прокси)
Определение: Предоставляет суррогат или заполнитель для объекта, чтобы управлять доступом к нему. Прокси-объект и объект онтологии реализуют один и тот же интерфейс и будут передавать любые вызовы методов объекту онтологии;
Примеры: предварительная загрузка изображений, отложенная загрузка изображений, слияние HTTP-запросов (прокси собирает все HTTP-запросы в течение определенного периода времени, а затем одновременно отправляет их на сервер), отложенная загрузка (обрабатывает и собирает некоторые базовые операции через прокси-сервер). , а затем требует онтологию только тогда, когда она действительно нужна (онтология загружается только одновременно), кеширующий прокси (результаты запроса кеша, результаты расчета)
Чтобы узнать больше об этом режиме, перейдите по этой ссылке
Посредническая модель (посредник)
Определение: Роль посредников состоит в том, чтобы разблокировать отношения тесной связи между объектами. После добавления объекта-посредника все связанные объекты взаимодействуют через посредников вместо обращения к ссылке, поэтому при изменении объекта необходимо только уведомить объект-посредник. Медиаторы отделяют объекты друг от друга и могут независимо изменять их взаимодействие. Паттерн посредника превращает связную связь «многие ко многим» в относительно простую связь «один ко многим».
Например: страница покупки мобильного телефона (цвет, количество, память, цена), режим MVC (уровень управления является посредником между уровнем представления и уровнем модели)
Чтобы узнать больше об этом режиме, перейдите по этой ссылке
Шаблон декоратора (Decorator)
Определение. Шаблон декоратора может динамически добавлять обязанности к объекту во время выполнения программы без изменения самого объекта. Декораторы используются для добавления новых функций в виде перегруженных методов.Этот шаблон может добавлять собственное поведение до или после декорированного объекта для достижения определенной цели. Декораторы — это более легкий и гибкий подход, чем наследование.
Пример: Thunder Fighter (пример поедания реквизита)
Чтобы узнать больше об этом режиме, перейдите по этой ссылке
Модель публикации-подписки (наблюдатель)
Определение: отношение "один ко многим" между объектами, позволяющее нескольким объектам-наблюдателям одновременно отслеживать объект-субъект.При изменении объекта все зависящие от него объекты будут уведомлены.
Пример: связь модулей, привязка и запуск событий, центр продаж.
Чтобы узнать больше об этом режиме, перейдите по этой ссылке
Режим адаптера (адаптер)
Определение: Шаблон адаптера (Adapter) предназначен для преобразования интерфейса (метода или свойства) класса (объекта) в другой интерфейс (метод или свойство), желаемый заказчиком Шаблон адаптера делает те классы, которые не могут работать вместе из-за несовместимости интерфейса .(объект) может выполнять некоторую работу. Быстрая обертка (обертка).
Пример: обычно используется для адаптации интерфейса, совместим с несколькими библиотеками (такими как функция $ библиотеки Prototype и метод get YUI).
Чтобы узнать больше об этом режиме, перейдите по этой ссылке
Режим итератора (Итератор)
Определение. Шаблон итератора относится к предоставлению способа последовательного доступа к элементам агрегатного объекта без раскрытия внутреннего представления объекта.
Пример: jquery $.each(),
Чтобы узнать больше об этом режиме, перейдите по этой ссылке
Режим моста (мост)
Определение: Шаблон моста (Bridge) отделяет абстрактную часть от части реализации, так что обе они могут изменяться независимо друг от друга.
Пример: используйте режим моста для присоединения нескольких классов, мониторинг событий
Чтобы узнать больше об этом режиме, перейдите по этой ссылке
Фасад
Определение: Фасад предоставляет согласованный интерфейс для набора интерфейсов в подсистеме.Этот модуль определяет высокоуровневый интерфейс, упрощающий использование подсистемы.
Примеры: привязки событий совместимых браузеров, совместимые браузеры предотвращают всплывающие сообщения, события по умолчанию.
Чтобы узнать больше об этом режиме, перейдите по этой ссылке
Шаблон посетителя (Посетитель)
Определение: представляет операцию каждого элемента, действующего в целевой структуре. Это позволяет вам определять новые операции, которые воздействуют на эти элементы, не изменяя класс каждого элемента.
Пример:
Чтобы узнать больше об этом режиме, перейдите по этой ссылке
Шаблон метода шаблона
Определение: шаблон метода шаблона состоит из двух частей, первая часть — абстрактный родительский класс, вторая часть — подкласс конкретной реализации, в общем, абстрактный родительский класс инкапсулирует структуру алгоритма подкласса, включая реализацию некоторых общедоступные методы и инкапсуляция Порядок выполнения всех методов в подклассе, подкласс может наследовать суперкласс и может переопределять методы суперкласса в подклассе для реализации собственной бизнес-логики.
Примеры: напитки с пузырьками (чай и кофе), интервью с компаниями (интервью Baidu и интервью с Али).
Чтобы узнать больше об этом режиме, перейдите по этой ссылке
Комбинированный режим (Композитный)
Определение: Составной режим объединяет объекты в древовидную структуру для представления иерархии "часть-целое". Составной режим позволяет пользователям последовательно использовать один объект (подобъект) и составные объекты.
Пример: сканирование файлов (каталоги являются комбинированными объектами, а файлы являются подобъектами), операции с узлами dom
Чтобы узнать больше об этом режиме, перейдите по этой ссылке
Сувениры
Определение: захват внутреннего состояния объекта и сохранение этого состояния вне объекта без нарушения инкапсуляции. Это восстанавливает объект в исходное сохраненное состояние.
Пример: элементы управления пейджингом, компоненты отмены
Чтобы узнать больше об этом режиме, перейдите по этой ссылке
Цепочка ответственности
Определение. Шаблон цепочки ответственности позволяет нескольким объектам иметь возможность обработать запрос, тем самым избегая связывающих отношений между отправителем и получателем запроса. Соедините эти объекты вместе и передайте запрос по цепочке, пока один объект не обработает его.
Например: сжать автобус, чтобы сдать деньги (деньги может забрать только кондуктор), внести залог и зарезервировать мобильный телефон.
Чтобы узнать больше об этом режиме, перейдите по этой ссылке
Режим состояния (состояние)
Определение. Шаблон состояния (State) определяет объект, который может вносить изменения в приложение, управляя его состоянием. Шаблон состояния — это очень распространенный шаблон проектирования, который в основном состоит из двух ролей (класс среды, класс состояния).
Например: файл загрузки (запуск, пауза, завершено, сбой и т. Д.), Светофоры
Чтобы узнать больше об этом режиме, перейдите по этой ссылке
Наилегчайший вес
Определение: режим облегченного веса — это режим оптимизации производительности, который очень полезен, если системе не хватает памяти или она занимает слишком много памяти из-за создания большого количества однотипных объектов (в частности, кэширования объектов для достижения повторного использования).
Пример: Фабрика нижнего белья отображает множество дисплеев продуктов, приложение карты (пул объектов)
Чтобы узнать больше об этом режиме, перейдите по этой ссылке