Шаблон проектування адаптер. Pattern adapter.
Відео: патерн Адаптер (Adapter)
Всім привіт! Сьогодні ми поговоримо про шаблоні проектування Адаптер (Pattern Adapter). Як зрозуміло з назви, служить він для того, щоб щось адаптувати, але ось що? А на це питання вам відповість ця стаття.
Опис шаблону проектування Адаптер
Давайте трохи відійдемо від програмування і подивимося на адаптери в реальному житті. Наприклад, ви купили якусь техніку (наприклад, комп`ютер) за кордоном. Приїхавши з нею додому, ви виявили, що вилка іншого стандарту і в нашу, російську розетку, не підходить. Що ж робити? Правильно! Потрібно піти в магазин і купити перехідник, використовуючи який ви зможе підключити ваш комп`ютер в мережу. Так ось, цей перехідник і є адаптер. У нього ми вставляємо іноземну вилку, а сам адаптер включаємо в мережу і все прекрасно працює. Тобто він служить просто прошарком між нашою розеткою і іноземній виделкою.
Відео: Паттерни проектування
Отже, думаю, що ви розібралися, що таке адаптер в житті. У програмуванні - це те ж саме.
Приклад реалізації адаптера на PHP
lt ;?php
interface iMain {
publicfunction send() -
}
interface iAdaptee {
publicfunction inquiry() -
}
classAdapteeimplements iAdaptee {
publicfunction inquiry(){
return __CLASS__."::".__METHOD__-
}
}
classAdapterimplements iMain {
protected $ adaptee =null-
publicfunction __construct(){
$ this-gt;adaptee =newAdaptee() -
}
publicfunction send(){
return $ this-gt;adaptee-gt;inquiry() -
}
}
$ goal =newAdapter() -
echo $ goal-gt;send() -// "Adaptee :: inquiry"
?gt;Отже, ось наш код. Давайте розбиратися. У нас є інтерфейс iMain, клієнтський код вміє працювати з ним. Далі у нас є інтерфейс iAdaptee, з яким клієнтський код працювати не вміє, але нам необхідно якось з ним взаємодіяти. Потім у нас є клас Adaptee, який успадковує інтерфейс iAdaptee і всередині у нього є метод з ім`ям inquiry, який просто повертає рядок виду CLASS :: METHOD. Ось ми підійшли до класу Adapter, який успадковує інтерфейс iMain. Усередині нього ми створюємо захищене властивість adaptee, рівне null. Далі в конструкторі ми створюємо об`єкт класу Adaptee і записуємо його в наше захищене властивість. У методі send ми повертаємо виклик методу inquiry.
Відео: Adapter (Шаблон проектування Адаптер)
От і все. Тепер створюємо об`єкт нашого адаптера і викликаємо метод send.
Тобто вся суть в тому, що ми можемо працювати з одним інтерфейсом, але не можемо з іншим і, щоб якось взаємодіяти з цим недоступним нам інтерфейсом, ми і створюємо адаптер, прошарок, через яку і реалізуємо нашу задачу.
висновок
Зараз вам може здатися, що все дуже складно і важко, але це не так. Думаю, сенс адаптера ви зрозуміли, а тепер вам потрібно більше практики. Перегляньте ще раз код, який дан в цій статті, і спробуйте його осмислити. Рядок за рядок переглядайте і промовляти його, як ніби ви інтерпретатор php. Також, раджу переглянути код якогось фреймворка, адже там цей шаблон використовується досить часто.
Відео: Шаблони Java. Adapter (Адаптер)
На цьому я закінчую цю немаленьку статтю, спасибі за увагу!
Як в windows 7 встановити драйвер на wi-fi адаптер?
Як на windows 10 відкотити драйвера wi-fi адаптера?
Вийшло нове оновлення додатка бездротової адаптер microsoft для windows 10
Ноутбук не підключається до wi-fi вирішуємо проблему 4-ма способами
Заміна dvd на hdd в ноутбуці (заміна dvd приводу)
Huntkey es 90w ultra edition - універсальний блок живлення для ноутбуків
Кращі wifi адаптери для kali linux 2017
Відеокарта geforce gtx 650 ti boost у виконанні gigabyte
Як підключити usb-usb
Як підключити iphone до інтернет
Рішення проблеми з бездротовою мережею
802.11N: найшвидший wifi
Мережеві powerline-адаптери tp-link
Новий графічний адаптер sapphire hd 7790 з 2 гб пам`яті
Створення движка на mvc. Вступ.
Шаблон проектування "одинак" (pattern singleton).
Тв-приставки minix neo x8 і neo x8s
Шаблон проектування "стратегія" (pattern strategy).
Шаблон проектування фасад. Pattern facade.
Помилка 629
Компактний комп`ютер foxconn at-5570
Помилка 629
Як підключити iphone до інтернет
Шаблон проектування "стратегія" (pattern strategy).
Кращі wifi адаптери для kali linux 2017
Ноутбук не підключається до wi-fi вирішуємо проблему 4-ма способами
Новий графічний адаптер sapphire hd 7790 з 2 гб пам`яті
Створення движка на mvc. Вступ.
Huntkey es 90w ultra edition - універсальний блок живлення для ноутбуків