В этой статье описывается функция адаптера питания в приложениях режима адаптера Java. Поделитесь этим для вашей ссылки, следующим образом:
1. Определение шаблона
Есть два режима адаптера
1 Режим адаптера объекта В этом режиме адаптера адаптер содержит физическую сущность объекта класса, который он охватывает.
Режим адаптера класса 2 В этом режиме адаптера адаптер наследует от реализованного класса.
2. Примеры модели
1 Анализ шаблона
Мы одолжим адаптер питания карандаша, чтобы проиллюстрировать этот режим.
Уже существующий адаптер мощности Power AC Power
2 статическое моделирование режима адаптера
3 примеры кода
3.1 Абстрактное учреждение питания
пакет com.demo.power;/** * Базовый класс мощности * * @author * */public abstract class absbasepower {// значение напряжения частная платная мощность; // единица частной строки unit = "v"; // Создать метод public absbasepower (float power) {this.power = power; } public float getPower () {return Power; } public void SetPower (Float Power) {this.power = power; } public String getUnit () {return Unit; } public void setUNIT (строковая единица) {this.Unit = unit; }}3.2 220V интерфейс питания
Пакет com.demo.power.v220;/** * 220V интерфейс питания * * @author * */public interface iPower220 {// 220V Печать источника питания Public void 220V ();}3.3 220V класс реализации питания
пакет com.demo.power.v220; import com.demo.power.absepower;/** * 220V источник питания * * @author * */public class power220 расширяет absbasepower, внедряет iPower220 {// Создание метода Public Power220 () {Super (220); } // 220V Выходная мощность public void output220v () {System.out.println ("---- это [" + this.getPower () + this.getUnit () + "] Power! ..."); }}3.4 12 В интерфейс питания
Пакет com.demo.power.v12;/** * 12V интерфейс питания * * @author * */public inpectips iPower12 {// 12V Печать источника питания public void output12v ();}3.5 12 В класс реализации питания
Пакет com.demo.power.v12; import com.demo.power.absepower;/** * Нормальный источник питания 12V * * @author * */public class power12 расширяет absbasepower, внедряет iPower12 {// 12V метод строительства электроснабжения. } // 12 В мощность выходной выходной void output12v () {system.out.println ("--- Это [" + this.getPower () + this.getUnit () + "] power! ..."); }}3.6 12 В адаптер объекта мощности
пакет com.demo.adapter; import com.demo.power.absepower; import com.demo.power.v12 absbasepower; // Метод построения адаптера передает объект, который будет преобразован в публичную адаптерпорию12 (absbasepower absbasepower) {this.absbasepower = absbasepower; } // Реализовать метод целевого объекта public void output12v () {// Получить внешнее значение мощности float powerfloat = this.absbasepower.getPower (); // Выполнить преобразование мощности if (powerfloat == 380) {// 380V преобразование мощности Powerfloat = Powerfloat / 31.67f; } else if (powerfloat == 220) {// 220V преобразование мощности Powerfloat = Powerfloat / 18.33f; } else if (powerfloat == 110) {// 110V преобразование мощности PowerFloat = PowerFloat / 9.17F; } else {System.out.println ("---- не может адаптироваться к власти! ..."); возвращаться; } // Обработать результат преобразования PowerFloat = (int) (PowerFloat * 10) / 10.0F; System.out.println ("---- это [" + powerfloat + this.absepower.getunit () + "] power! ..."); }}3.7 12 В адаптер питания
пакет com.demo.adapter; import com.demo.power.absbasepower; import com.demo.power.v12 Метод строительства передает объект, который будет преобразован в общедоступную адаптеру12EXT (absbasepower absbasepower) {super (absbasepower.getpower ()); } // Реализовать метод целевого объекта @Override public void output12v () {// Получить внешнее значение мощности float powerfloat = this.getPower (); // Выполнить преобразование мощности if (powerfloat == 380) {// 380V преобразование мощности Powerfloat = Powerfloat / 31.67f; } else if (powerfloat == 220) {// 220V преобразование мощности Powerfloat = Powerfloat / 18.33f; } else if (powerfloat == 110) {// 110V преобразование мощности PowerFloat = PowerFloat / 9.17F; } else {System.out.println ("---- не может адаптироваться к власти! ..."); возвращаться; } // Обработать результат преобразования PowerFloat = (int) (PowerFloat * 10) / 10.0F; System.out.println ("---- это [" + powerfloat + this.getunit () + "] power! ..."); }}3.8 Тестовый адаптер
пакет com.demo; import com.demo.adapter.adapterpower12; import com.demo.adapter.adapterpower12ext; импорт com.demo.power.v12.ipower12; импорт com.demo.power.v12.power12; импорт com.demo.power.v220.power220; */public Class Client {/** *@param args */public static void main (string [] args) {// Сначала мы генерируем объект источника питания 220V! Power220 Power220 = новый Power220 (); Power220.Output220V (); // Далее мы генерируем объект питания 12 В! IPower12 power12 = new Power12 (); Power12.Output12V (); // Наконец, мы используем адаптер питания для преобразования источника питания в 220 В в источник питания 12 В! System.out.println("/n----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- System.out.println ("----- Классный адаптер конверсия адаптера заканчивается!");3.9 Результаты работы
---- это источник питания [220.0V]! ...
---- Это источник питания [12.0V]! ...
---- Адаптер мощности преобразуется ...
---- Это источник питания [12.0V]! ...
--- Конверсия адаптера мощности окончена!
---- Адаптер адаптер конвертируется ...
---- Это источник питания [12.0V]! ...
---- Класс-адаптер конверсия адаптера заканчивается!
3. Принципы дизайна
1 Использование комбинаций объектов, ориентированное на интерфейс и абстрактное программирование
2 «открытый и близкий» принцип
4. Используйте случаи
1 Когда структура программной системы должна быть обновлена или расширена, и не хочет влиять на стабильную работу исходной системы
2 Когда разница между классами конверсии не очень большая
3 Когда вы хотите создать многоразовый класс, который может работать в сочетании с другими не связанными или непредвиденными классами
5. Статическая диаграмма классов режима адаптера класса и режима адаптера объекта
Для получения дополнительной информации об алгоритмах Java, читатели, которые заинтересованы в этом сайте, могут просмотреть темы: «Учебное пособие по структуре данных Java и алгоритм», «Сводка операции Java Dom Node», «Сводка Java File и каталог
Я надеюсь, что эта статья будет полезна для всех Java Programming.