Sobes.tech
Middle

Ի՞նչ նախագծման ձևանմուշներ եք գիտակցում:

sobes.tech AI

Պատասխան AI-ից

Ստեղծողներ:

  • Ֆաբրիկայի մեթոդ (Factory Method): Դիտարկում է օբյեկտի ստեղծման ինտերֆեյսը, բայց թույլ է տալիս ենթակլասներին որոշել, թե որ դասը պետք է ինստանցիացվի:
  • Աբստրակտ ֆաբրիկա (Abstract Factory): Ներկայացնում է ինտերֆեյս՝ կապված կամ փոխկապակցված օբյեկտների ընտանիքների ստեղծման համար՝ առանց նշելու նրանց կոնկրետ դասերը:
  • Կառուցող (Builder): Բաժանում է բարդ օբյեկտի կառուցումը նրա ներկայացումից, թույլ տալով նույն կառուցման գործընթացով ստեղծել տարբեր ներկայացումներ:
  • Պրոտոտիպ (Prototype): Ստեղծում է նոր օբյեկտներ՝ պատճենելով առկա օրինակները:
  • Սինգլտոն (Singleton): Հավաստիացնում է, որ դասը ունի միայն մեկ օրինակ, և տրամադրում է գլոբալ մուտք դեպի այդ օրինակ:

Կառուցվածքային:

  • Ադապտեր (Adapter): Փոխում է մեկ դասի ինտերֆեյսը՝ այն մյուսին համապատասխանեցնելու համար, որը սպասում են հաճախորդները:
  • Հովանավոր (Bridge): Բաժանում է աբստրակցիան և իրագործումը՝ որպեսզի նրանք կարողանան փոփոխվել անկախ մեկը մյուսից:
  • Կոմպոզիտոր (Composite): Կոմպոզիցիա է կազմում օբյեկտներից՝ ծառային կառուցվածքների համար՝ ներկայացնելու մաս-մեկություն հարաբերությունները: Կոմպոզիտորը թույլ է տալիս հաճախորդներին աշխատել առանձին օբյեկտների և նրանց կոմպոզիցիաների հետ նույն կերպ:
  • Դեկորատոր (Decorator): Դինամիկ կերպով ավելացնում է օբյեկտին նոր պարտականություններ: Գործնականում դա ավելի ճկուն է, քան ենթակլասների ընդլայնումը:
  • Ֆասադ (Facade): Տրամադրում է միացյալ ինտերֆեյս՝ ենթաբազմության տարբեր ինտերֆեյսների հավաքածուի համար: Ֆասադը սահմանում է բարձր մակարդակի ինտերֆեյս, որը հեշտացնում է ենթաբազմության օգտագործումը:
  • Ֆլայվեյթ (Flyweight): Օգտագործվում է մեծ թվով նմանատիպ օբյեկտների արդյունավետ բաժանման համար:
  • Պրոքսի (Proxy): Տրամադրում է փոխարինող օբյեկտ՝ վերահսկողություն ունենալու համար մյուս օբյեկտի մուտքի վրա:

Անհատական:

  • Պատասխանատվության շղթա (Chain of Responsibility): Позволяет передавать запросы последовательно по цепочке обработчиков. Каждый обработчик решает, либо обработать запрос, либо передать его следующему обработчику в цепочке.
  • Команда (Command): Инкапсулирует запрос как объект, позволяя параметризовать клиентов различными запросами, ставить запросы в очередь или логировать их, а также поддерживать операции отмены.
  • Իտերատոր (Iterator): Предоставляет способ последовательного доступа к элементам составного объекта без раскрытия его внутреннего представления.
  • Միջնորդ (Mediator): Դիտարկում է օբյեկտ, որը ինկապսուլացնում է, թե ինչպես են փոխազդում օբյեկտների հավաքածուն: Միջնորդը նպաստում է թույլ կապի, կանխելով օբյեկտների հղումների բացահայտումը միմյանց նկատմամբ:
  • Մեմենտո (Memento): Բացառելով ինկապսուլյացիան՝ ֆիքսում և արտաքինից պահպանում է օբյեկտի ներքին վիճակը՝ այն հնարավոր դարձնելով հետագայում վերականգնել:
  • Դիտորդ (Observer): Դիտում է "մեկից շատ" կախվածությունը օբյեկտների միջև՝ այնպես, որ երբ փոփոխվում է մեկ օբյեկտի վիճակը, բոլոր կախվածները ավտոմատ կերպով տեղեկացվում և թարմացվում են:
  • Կարգավիճակ (State): Позволяет объекту изменять свое поведение при изменении его внутреннего состояния. Объект, казалось бы, изменяет свой класс.
  • Стратегия (Strategy): Определяет семейство алгоритмов, инкапсулирует каждый алгоритм и делает их взаимозаменяемыми. Стратегия позволяет алгоритму изменяться независимо от клиентов, которые его используют.
  • Шаблонный метод (Template Method): Определяет скелет алгоритма в операции, откладывая некоторые шаги на подклассы. Шаблонный метод позволяет подклассам переопределять некоторые шаги алгоритма, не изменяя его структуру.
  • Посетитель (Visitor): Представляет операцию, которую нужно выполнить над элементами структуры объектов. Посетитель позволяет определить новую операцию без изменения классов элементов, над которыми оперирует.

Помимо шаблонных (GoF) паттернов также существуют другие категории, например, корпоративные паттерны интеграции или микросервисные паттерны. Кроме того, часто используются архитектурные паттерны, такие как MVC, MVP, MVVM.