Обзор
Преобразование интерфейса в другой интерфейс, которого желает пользователь, режим адаптера позволяет классам, которые не могут работать вместе из -за несовместимости интерфейсов.
Два метода реализации
1. Режим адаптера класса:
2. Режим адаптера объекта:
Схема UML режима адаптера класса выглядит следующим образом:
Паттерн адаптера класса преобразует API адаптированного класса в API целевого класса.
Персонажи, разработанные на рисунке выше:
Цель: это интерфейс, который вы ищете.
Роль источника (адапи): интерфейс, который теперь необходим для адаптации.
Роль адаптера (адаптер): он является ядром этого режима, и адаптер преобразует интерфейс источника в целевой интерфейс.
Пример кода:
Интерфейс Target {void method1 (); void method2 (); // Я надеюсь получить этот метод} // У исходного класса нет метода в методе2. класс адаптируется {public void method1 () {System.out.println ("method1"); }} класс адаптер расширяет адаптируемые реализации Target {@Override public void method2 () {System.out.println ("Это целевой метод"); }} открытый класс maintest {public static void main (string arg []) {target target = new adapter (); target.method2 (); }} Диаграмма UML режима адаптера объекта выглядит следующим образом:
Основная идея такая же, как и режим адаптера класса. Это только изменяет класс адаптера, не наследует класс адаптирования, но содержит ссылку на класс адаптации. Код заключается в следующем:
Интерфейс Target {void method1 (); void method2 ();} class Adaptee {public void method1 () {system.out.println ("method1"); }} класс адаптер реализует Target {private Adaptee Adaptee; публичный адаптер (адаптируемый адаптируемый) {this.Adaptee = Adaptee; } @Override public void method2 () {System.out.println ("Это целевой метод"); } @Override public void method1 () {// todo Автогенерированный метод Adapteee.method1 (); }} открытый класс maintest {public static void main (string arg []) {target target = new Adapter (new Adaptee ()); target.method2 (); }} Преимущества и недостатки режима адаптера:
Лучшая способность повторного использования и лучшая масштабируемость. Система должна использовать существующие классы, и такие интерфейсы не отвечают потребностям системы, поэтому эти функции могут быть лучше повторно использованы в режиме адаптера. При внедрении функции адаптера вы можете вызвать функции, которые вы разработали сами, для естественного расширения функций системы.
Недостатки: слишком много использования адаптеров сделает систему очень грязной и трудно понять в целом.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.