Патерн Адаптер: опис, функції та можливості, поради по роботі

Двосторонні адаптери

Двосторонні адаптери – це адаптери, які реалізують обидва інтерфейсу: і (Target), і (Adaptee). Адаптований об’єкт може використовуватися в якості (Target) в нових системах, що працюють з класами (Target), або як (Adaptee) в інших системах, що працюють з класами (Adaptee). Якщо піти далі в цьому напрямку, то у нас можуть бути адаптери, які реалізують n-ное кількість інтерфейсів, адаптуються до n-систем. Двосторонні адаптери і n-смугові адаптери складно реалізувати в системах, що не підтримують множинне спадкування. Якщо адаптер повинен розширювати клас (Target), він не може розширювати інший клас, такий як (Adaptee), тому (Adaptee) повинен бути інтерфейсом, і всі виклики можуть бути делеговані від адаптера об’єкту (Adaptee).

Крім того, якщо (Target) і (Adapter) схожі, то адаптер повинен просто делегувати запити від класу (Target) до класу (Adapter), а якщо (Target) і (Adaptee) не схожі один на одного, то адаптера може знадобитися перетворення структури даних між ними та реалізувати операції, необхідні для (Target), але не реалізовані в класі (Adaptee).