推荐使用 wiki 更香
https://github.com/lvgocc/java-design-patterns/wiki
Авторское заявление: за исключением фона или концептуального содержания шаблонов проектирования, всё остальное содержание является результатом глубокого понимания и вывода автора. Автор надеется получить вашу поддержку в виде «звезды» ⭐.
Тема шаблонов проектирования содержит 23 шаблона проектирования. Каждый шаблон проектирования начинается с фундаментального понимания идеи дизайна, а затем дополняется некоторыми небольшими историями для лучшего понимания. Это делает шаблоны проектирования понятными и доступными.
Если да, то эта тема идеально подходит для вас. Вы изучили шаблоны проектирования? Можно попробовать изучить две статьи, чтобы понять одну и ту же концепцию, но с разным «вкусом».
«Каждая статья...» (внезапно прерывается).
«Не говори, покажи мне!»
«Хорошо, старший брат, я всё устрою!»
Каждая статья сопровождается соответствующим учебным материалом и написана простым языком. Я пытаюсь изучать знания экспертов, используя подход новичка. Я не силён в сложных вещах, но мне нравится упрощать сложные вещи. Я верю в закон сохранения сложности. Я также верю, что цель объяснения — сделать его понятным для всех, а не просто продемонстрировать свои знания. Аплодисменты.
Когда мы изучаем новую технологию или область знаний, важно сначала понять её предысторию. Это оказывает подсознательное влияние и помогает нам лучше понимать и усваивать материал.
Этот раздел представляет собой обобщённое изложение.
В 1977 году американский архитектор Кристофер Александр описал некоторые распространённые архитектурные проблемы и предложил решения в своей книге «Язык паттернов архитектуры: города, здания, конструкции» (A Pattern Language: Towns Building Construction).
Два года спустя, в 1979 году, Кристофер Александр в своей следующей книге «Вечный путь строительства» (The Timeless Way of Building) ещё больше укрепил идею паттернов.
Только в 1990 году, 13 лет спустя, термин «паттерны проектирования» вошёл в мир программного обеспечения, и была организована специальная конференция по этой теме.
Через пять лет после того, как «паттерны проектирования» вошли в сферу программного обеспечения, в 1995 году Эрих Гамма (Erich Gamma), Ричард Хелм (Richard Helm), Ральф Джонсон (Ralph Johnson) и Джон Влиссидес (John Vlissides) опубликовали книгу «Паттерны проектирования: элементы многоразового объектно-ориентированного программного обеспечения» (Design Patterns: Elements of Reusable Object-Oriented Software).
Это вызвало волну интереса к паттернам проектирования в сообществе разработчиков программного обеспечения и привело к появлению множества новых паттернов. Эти четыре автора стали известны в мире разработки программного обеспечения как Gang of Four (четвёрка), а паттерны проектирования стали известны под этим псевдонимом GOF.
Сегодня существует гораздо больше 23 паттернов, описанных автором, и их количество продолжает расти. Однако все эти паттерны преследуют одну и ту же цель — быть многократно используемыми для решения повторяющихся проблем, подобно тому, как это было описано в книге GOF, «основы многоразового использования объектно-ориентированных программ».
Один метод, решение n проблем. Вот что такое паттерн — он решает общие проблемы. В интернете есть много сайтов с информацией на эту тему. Посмотрите, что нашлось в поиске ### Поведенческие (11)
Шаблон «Компоновщик» (Composite): позволяет объединять объекты в древовидную иерархическую структуру, предоставляя единый интерфейс для работы с отдельными объектами и группами объектов.
Шаблон «Метод-шаблон» (Template Method): определяет алгоритм в операции и откладывает некоторые шаги алгоритма до подклассов, позволяя им переопределять определённые шаги без изменения структуры алгоритма.
Стратегический шаблон (Strategy): определяет набор алгоритмов и инкапсулирует каждый из них, что позволяет заменять алгоритмы без влияния на клиентов, использующих эти алгоритмы.
Командный шаблон (Command): упаковывает запрос как объект, разделяя ответственность за выдачу запроса и его выполнение.
Цепочка обязанностей (Chain of Responsibility): передаёт запрос от одного объекта к другому, пока запрос не будет обработан. Это помогает уменьшить связь между объектами.
Состояние (State): позволяет объекту изменять своё поведение при изменении внутреннего состояния.
Наблюдатель (Observer): устанавливает отношения «один ко многим» между объектами, где изменение одного объекта уведомляет другие объекты, влияя на их поведение.
Посредник (Mediator): определяет посредника для упрощения взаимодействия между существующими объектами, снижая степень их связанности и позволяя объектам взаимодействовать без знания друг о друге.
Итератор (Iterator): предоставляет способ последовательного доступа к элементам в агрегате без раскрытия внутренней структуры агрегата.
Посетитель (Visitor): обеспечивает различные способы доступа к каждому элементу в коллекции, позволяя каждому элементу иметь несколько посетителей.
Мементо (Memento): сохраняет внутреннее состояние объекта без нарушения инкапсуляции, чтобы можно было восстановить это состояние позже.
Интерпретатор (Interpreter): определяет грамматику языка и методы интерпретации предложений на этом языке, обеспечивая интерпретацию.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )