HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-19
1 <p>Казалось бы, что особенного в адаптере для розеток? Например, то, что есть структурный паттерн проектирования, который работает по тому же принципу. Рассказываем об этом на курсе<a>"Архитектура приложений"</a>и делимся кусочком лекции с вами 👇</p>
1 <p>Казалось бы, что особенного в адаптере для розеток? Например, то, что есть структурный паттерн проектирования, который работает по тому же принципу. Рассказываем об этом на курсе<a>"Архитектура приложений"</a>и делимся кусочком лекции с вами 👇</p>
2 <p>Структурные паттерны позволяют нам упростить работу со структурами или из более простых структур составить более комплексные и сложные.</p>
2 <p>Структурные паттерны позволяют нам упростить работу со структурами или из более простых структур составить более комплексные и сложные.</p>
3 <p><strong>Виды структурных паттернов:</strong></p>
3 <p><strong>Виды структурных паттернов:</strong></p>
4 <ul><li>адаптер;</li>
4 <ul><li>адаптер;</li>
5 <li>мост;</li>
5 <li>мост;</li>
6 <li>компоновщик;</li>
6 <li>компоновщик;</li>
7 <li>декоратор;</li>
7 <li>декоратор;</li>
8 <li>фасад;</li>
8 <li>фасад;</li>
9 <li>легковес;</li>
9 <li>легковес;</li>
10 <li>заместитель.</li>
10 <li>заместитель.</li>
11 </ul><p>Каждый из вас, скорее всего, сталкивался с одним из паттернов в реальной жизни. Например, в путешествиях в некоторых странах ваш формат вилок для зарядки ноутбуков, фенов, утюгов не подходил к розеткам, а адаптер решал эту проблему.</p>
11 </ul><p>Каждый из вас, скорее всего, сталкивался с одним из паттернов в реальной жизни. Например, в путешествиях в некоторых странах ваш формат вилок для зарядки ноутбуков, фенов, утюгов не подходил к розеткам, а адаптер решал эту проблему.</p>
12 <p>То же самое происходит и в программных системах. Как выглядит паттерн на диаграмме, показали на слайде выше 👆</p>
12 <p>То же самое происходит и в программных системах. Как выглядит паттерн на диаграмме, показали на слайде выше 👆</p>
13 <p>Допустим, у нас есть клиент, который умеет взаимодействовать с определённым интерфейсом, и есть система, которая может помочь решить его проблему, но интерфейс у неё другой. Клиентский код умеет общаться с интерфейсом, вызывая один метод, и передавать ему какие-то данные, но сервис, с которым нам предстоит взаимодействовать, имеет абсолютно другой метод и абсолютно другие данные.</p>
13 <p>Допустим, у нас есть клиент, который умеет взаимодействовать с определённым интерфейсом, и есть система, которая может помочь решить его проблему, но интерфейс у неё другой. Клиентский код умеет общаться с интерфейсом, вызывая один метод, и передавать ему какие-то данные, но сервис, с которым нам предстоит взаимодействовать, имеет абсолютно другой метод и абсолютно другие данные.</p>
14 <p>В этом случае самым простым и выручающим вариантом будет использование паттерна "Адаптер". Мы будем создавать специальный класс, который будет реализовывать интерфейс, с которым будет взаимодействовать клиент, и обращаться к нужному нам сервису с нужной функциональностью, но с другим интерфейсом.</p>
14 <p>В этом случае самым простым и выручающим вариантом будет использование паттерна "Адаптер". Мы будем создавать специальный класс, который будет реализовывать интерфейс, с которым будет взаимодействовать клиент, и обращаться к нужному нам сервису с нужной функциональностью, но с другим интерфейсом.</p>
15 <p><strong>Плюсы паттерна адаптер:</strong></p>
15 <p><strong>Плюсы паттерна адаптер:</strong></p>
16 <p>+ создает "мост" между интерфейсами (адаптирует нашего клиента с привычными интерфейсом к незнакомому ему сервису или классу);+ и золирует от клиента подробности преобразования различных интерфейсов.</p>
16 <p>+ создает "мост" между интерфейсами (адаптирует нашего клиента с привычными интерфейсом к незнакомому ему сервису или классу);+ и золирует от клиента подробности преобразования различных интерфейсов.</p>
17 <p><strong>Минус:</strong></p>
17 <p><strong>Минус:</strong></p>
18 <p>- сложно преобразовать параметры вызовов функций, если в адаптируемом интерфейсе другие абстракции.</p>
18 <p>- сложно преобразовать параметры вызовов функций, если в адаптируемом интерфейсе другие абстракции.</p>
19 <p><strong>Узнать больше об адаптерах, научиться писать как разработчик, а думать как архитектор и создавать поддерживаемые системы можно на курсе "Архитектура приложений".</strong>Старт потока 26 мая. Занять место -<a>по ссылке.</a></p>
19 <p><strong>Узнать больше об адаптерах, научиться писать как разработчик, а думать как архитектор и создавать поддерживаемые системы можно на курсе "Архитектура приложений".</strong>Старт потока 26 мая. Занять место -<a>по ссылке.</a></p>
20 <p>2025-04-30 00:00<a>Архитектура</a></p>
20 <p>2025-04-30 00:00<a>Архитектура</a></p>