【текст】
Мы знаем, что наиболее важным и наиболее сложным контролем пользовательского интерфейса в Android является управление списком списков ListView. Если вы хотите гибко использовать его, вы должны использовать адаптер адаптер. Поэтому я думаю, что все еще необходимо изучить режим адаптера на Java (независимо от того, может ли он использоваться в будущем). В конце концов, Java Language является очень важной основой для разработки Android.
Чтобы полностью понять режим адаптера, есть много знаний, например: режим адаптера имеет две разные формы: режим адаптера класса и режим адаптера объекта. Но как новичок, я просто узнаю вступительные знания режима оркестровки и буду продолжать улучшать его в будущем. Я надеюсь, что детская обувь, которые борются на пути к кодированию, не жалуются → _ →
1. Введение адаптера
• Преобразовать интерфейс одного класса в другой интерфейс, который хочет клиент. Режим адаптера позволяет классам, которые изначально не могли работать вместе из -за несовместимости интерфейсов для совместной работы.
• Режим адаптера очень часто используется в современных рамках Java. Этот шаблон подходит для следующих сценариев: вы хотите использовать существующий класс, но класс не соответствует требованиям интерфейса; Или вам нужно создать многоразовый класс, который адаптируется к другим классам, которые не обеспечивают подходящего интерфейса.
2. Примеры яблок и апельсинов
Идея адаптера может быть проиллюстрирована следующим простым примером. Этот пример - сделать апельсин «адаптироваться» в яблоко. Как показано на рисунке ниже:
Как вы можете видеть в нижней половине вышеуказанной картины, адаптер содержит апельсиновый экземпляр и наследует класс Apple. Оранжевый объект помещается в адаптер, поэтому апельсин действует как яблоко. Соответствующая логическая диаграмма следующая:
3. Примеры заглушек для розетки
На приведенном выше рисунке мы можем успешно подключить пробку на левую гнезда через средний адаптер.
4. Реализация кода адаптера заглушки
/** Режим адаптера (адаптер): преобразует интерфейс одного класса в другой интерфейс, который хочет клиент. Режим адаптера позволяет классам, которые изначально не могли работать вместе из -за несовместимости интерфейсов для совместной работы. */class adapterdemo {public static void main (string [] args) {// power a начинает работать Powera powera = new poweraimpl (); Start (Powera); Powerb powerb = new PowerBimpl (); PowerAadapter PA = новый PowerAAdapter (PowerB); Start (pa); } // Метод определения: Powera работает Public Static void Start (Powera Powera) {System.out.println (".... Некоторый дублированный код ......"); powera.insert (); System.out.println ("... какой -то дублированный код .../n"); } /** public static void start (powerb powerb) {System.out.println ("... какой -то дублированный код ......"); powerb.connect (); System.out.println ("... какой -то дублированный код ......"); } */} // Определить класс адаптера класса PowerAadapter реализует Powera {private powerb powerb; // интерфейс для адаптации Public PowerAadapter (powerb powerb) {this.powerb = powerb; } // Реализация интерфейса Powera, вы должны реализовать методы в Powera public void insert () {powerb.connect (); }}/** Power a Interface*/interface powera {public void insert ();} класс PoweraImpl реализует Powera {public void insert () {System.out.println ("Power A Interface вставлен, начинайте работать"); }}/** Power B Интерфейс*/interface powerb {public void connect ();} класс PowerBimpl реализует PowerB {public void connect () {System.out.println ("Интерфейс Power B подключен, запуск работает"); }} В этом примере мы хотим, чтобы PowerB вызовал код в методе start () в Powera; Конечно, мы не хотим повторять прокомментированные 23 или 25 строк кода. В настоящее время вы можете использовать режим адаптера.
Приведенное выше код объяснение:
Строка 30: Начните определять адаптер, который также является началом базового кода;
Линии 33 и 34: пройти Powerb в методе строительства;
Код строки 37: Поскольку он должен реализовать интерфейс Powera, необходимо реализовать метод insert () в Powera;
Строка 38 Код: мы вызовываем метод PowerB Connect () в методе Powera Insert ();
Сразу после этого означает 10, 11 и 12 строк кода: когда новый A Powerb мы передаем его в адаптер PowerAadapter, запускаем адаптер, а затем PowerB выполнит код в строках 16, 24 и 18.
Примечание: порядок 16, 24 и 18 не ошибается, потому что в адаптере мы заменили 24 строки кода на строку 17.
Эффект работы заключается в следующем:
Точно так же, если я также хочу использовать Powera в качестве PowerB, я могу определить другой адаптер PowerBadapter для реализации двунаправленного адаптера.
5. Резюме
Код, прокомментированный в строках 23 и 25 выше, указывает на то, что он является большим дублированным кодом и не соответствует объектно-ориентированному мышлению. Теперь мы представляем пример того, как наш проект является онлайн, и клиенты используют его, но затем был добавлен какой -то новый спрос. Существует принцип OO для объектно-ориентированных объектов: закройте модификацию (после выхода в Интернет, постарайтесь не изменять код, в противном случае может возникнуть цепная реакция, что приводит к проблемам с другими кодами, называющими этот метод) и не открываться для расширений (новые методы определены сами, которые другие еще не вызывали, поэтому, конечно, мы можем изменить их). На этом этапе мы можем уменьшить этот дубликат кода через адаптеры.
6. OO Принципы дизайна
• Программирование, ориентированное на интерфейс (Абстрактное программирование)
• Изменения пакета
• Используйте больше комбинаций, используйте меньше наследования
• близко к модификациям для открытия для расширений
Лично эти принципы дизайна должны быть постоянно углубляться на практике, поэтому я не буду описывать их здесь слишком много ~
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.