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>