Димитар Георгиев

Структурные паттерны Занятие №4

Speakings 0 комментариев
Структурные паттерны Занятие №4

 

  • Адаптер
  • Adapter Принемает в качестве аргумента какой-то обект и позволяет переименоват или 
    переизползуйте его меттодъй. Создаем ДБ не на премую а через Adapter в качество
    аргумента передаюм ДБ.Берюм class либа екземпляра и переминуем имена в Adapter так 
    что будут такие же и в class каторой исползуем в Interface - ( Описание една и тоже
    колекция методъй и строк )в ожидаемой 
    
    Мост - Bridge 
    
    У нас есть Speacker ( ) как Interface интер но его реализация накладоваться в 
    другой класс. Тот же образам мъй разпределяем нагрузке в другой класс. Я могу 
    изменит интерфшйс к обращением к Speacker ( )  , в товреме как реализация методов 
    ни как не зависит от того в каким образом как мъй назвали интерфейс.
    Composite / Компоновщик 
  • Mъй обращаемся с eкземпляра класса либо с клекция етим класса  
    абсолютно одинаково.
    Прелест что мъй можем их усложнят.То-ест class Composed () может состойться 
    как из другие елементъй так и от другие Composite(). 
    
    Decorator / Декоратор
    
    У class Arab () изменил въйполнение метод greeting (). Сейчас person не
    поменяется но я его обернули в другой екземпляр new Arab () и переизползуем 
    его даннъй и методъй. Промлем - Каждая Обертка должна соответствует тому же самое 
    Interface - ( набору една и тоже колекция методъй и даннъй ), каторуй
    соответсвует базовъй класс
    
    Facade / Фасад
    
    У Фасад работает с колекция классов каторой содержаятся болшая, сложна логика
    с множества 
    различнъй Interface и класса .Ползователь видет всего лиш один метод buy(),
    купи и всё !
    На каждъй 3 товаров я делая новая коробка через goods.splice(-3)в класс Амазон
    скрита вся большая сложная скрита логика с множества различнъй интерфейсъй 
    и класса 
    
    Flyweight / Приспособленец / Легковес
    
    Flyweight уменшает в 5 и болше раз абюм памят и ето без оптимизацию. 
    Вместо того запоменят 9 символъй в страке мъй запоменаем 1 одно число - index.
    Если нужно какой то яблоко переберат я могу из етого масива достать свой яблоко
    Он запоменает общъй даннъй, каторъй часто повтаряеться,в единственом 
    екземпляре а затем позволяет на ним ссилаться геттър apples()  возвращает 
    просто генератор yield составляет новъй яблоки из те даннъй каторъй мне есть в 
    items.
    Превращает набор даннъйх декодирает его и соответственно опят состают 
    из него обект
    
     Proxy / Прокси / Заместитель
    
    ​​​​​​​Прокси позволяет ловит обращение к поля и методъй обекта и как то их заранее предварително
    обрабатовать.Уже ест встрояную Proxy () , принемает два аргумента : Первъй обект {}, Втарой
    аргумент тоже обект но с get(), set(), target(), has() и т.н.У етой обект есть возможност 
    перехватавает все что угодна,например constructor (), имене поля .target() Первъй аргумент 
    ато и сам обект. Я могу отлавливат обращение к несаществующий паля. Строчка появилас как то
    она существует в етой обект но хатя ето не так я просто перехватил обращение к етому поля и 
    въйвел строчку.Он перехватавает обращение и может с ними что - то длать ,таким образам 
    работает Proxy()
    В JS уже есть строенъй Proxy(), принемает 2 аргумента: обект и обект но с гетерами, сетерами, 
    с хезами, таргетъйми и другие функций. У етого обркта есть возможност перхватавает 
    всю что угодна ....Задат новъй значение методъй либо полю, apply , constructor .....Я могу 
    отлавляю обръщение к несуществующей поля, user.age не съществует хотя-бъй строчка въйловилас.
    Я просто перехватил вопрос к етому полю user.age и въйвел какой-то строчку. В Proxy()
    я могу описат методъй и к несуществующий поля

 

 

 

 

 

 

Назад Вперед
Войдите или зарегистрируйтесь
чтобы оставить комментарий