0:00 введение 1:30 adapter на prototype 3:57 adapter на class 4:23 adapter на function 6:15 adapter на классе-обертке (boxing) 7:08 adapter на замыканиях (closure) 8:10 adapter на interface 13:45 adapter на events 16:00 выводы
@kirillpospolitaki8602 жыл бұрын
Как всегда, спасибо за Ваш труд. Подскажите, пожалуйста, для чего мы делаем вызов `Array.call(this)`: ``` ArrayToQueueAdapter = function() { Array.call(this); // what for to do this? }; ``` Я не особо силен, просто проклацал код, который приведен у Вас, без этой строки в таком варианте: ```const ArrayToQueueAdapter = function() {}; ``` все также работает..
@TheTexPro2 жыл бұрын
Спасибо большое! Выходит, что адаптер меняет (расширяет) функциональность сущности при создании новой сущности, в отличии от паттерна Прокси, где функциональность начального класса изменяется за счет "пропускания через прокси" в качестве аргумента, без непосредственного участия, верно ?)
@TimurShemsedinov2 жыл бұрын
Адаптер меняет контракт, оборачивает, давая нужный внешний интерфейс, для этого иногда чутку расширяется функциональность, но это не цель адаптера, его цель - обеспечить совместимость
@Antonio-fm1sq3 жыл бұрын
Спасибо!
@anndroidek5 жыл бұрын
Закрадывается подозрение, что если бы конструкторы были названы Facade, вышла бы лекция про паттерн фасад. Уж слишком все похоже
@TimurShemsedinov5 жыл бұрын
Паттерны вообще многие похожи, а в js еще и интерфейсов нет, то отличие только в том, что фасад целую подсистему отделяет от остального кода, а адаптер только один класс или функтор