이 기사에서는 Java 어댑터 모드 애플리케이션의 전력 어댑터 기능에 대해 설명합니다. 다음과 같이 참조에 대해 공유하십시오.
1. 패턴 정의
두 가지 어댑터 모드가 있습니다
1 객체 어댑터 모드이 어댑터 모드에서 어댑터는 랩하는 클래스 객체의 물리적 엔티티를 보유합니다.
클래스 2 어댑터 모드이 어댑터 모드에서 어댑터는 구현 된 클래스에서 상속됩니다.
2. 모델의 예
1 패턴 분석
이 모드를 설명하기 위해 연필 파워 어댑터를 빌립니다.
이미 기존 AC 전원 노트북 전원 어댑터
2 어댑터 모드의 정적 모델링
3 코드 예제
3.1 초록 전원 공급 장치 설립
패키지 com.demo.power;/** * Power Base Class * * @author */public Abstract Class absbasepower {// 전압 값 개인 플로트 파워; // 유닛 개인 문자열 init = "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 yit; } public void setunit (문자열 단위) {this.unit = unit; }}3.2 220V 전원 인터페이스
패키지 com.demo.power.v220;/** * 220v 전원 인터페이스 * * @author */public interface ipower220 {// 220V AC 전원 공급 장치 인쇄 공개 void output220V ();}3.3 220V 전원 공급 장치 구현 클래스
패키지 com.demo.power.v220; import com.demo.power.absbasepower;/** * 220v 전원 공급 장치 * * @author */public class power220은 Absbasepower 구현을 확장합니다 {// public power220 () {Super (220); } // 220V 전원 출력 공개 void output220v () {System.out.println ( "--- 이것은 [" + this.getPower () + this.getUnit () + "] power! ..."); }}3.4 12V 전원 인터페이스
패키지 com.demo.power.v12;/** * 12V 전원 인터페이스 * * @author */public 인터페이스 ipower12 {// 12V 전원 공급 장치 인쇄 공개 void output12v ();}3.5 12V 전원 공급 장치 구현 클래스
패키지 com.demo.power.v12; import com.demo.power.absbasepower;/** * 정상 12V 전원 공급 장치 * * @author */public class power12는 AbsbasePower를 확장합니다. {// 12V 전원 공급 장치 구조 방법 public power12 () {Super (12); } // 12V 전원 출력 공개 void output12v () {System.out.println ( "--- 이것은 [" + this.getPower () + this.getUnit () + "] power! ..."); }}3.6 12V 전원 객체 어댑터
package com.demo.adapter; import com.demo.power.absbasepower; import com.demo.power.v12.ipower12;/** * 전원 어댑터 (Target Object Interface, 즉 12V 전원 인터페이스를 구현) * * @author */public class Adapterpower12 itepower {// Public Class AdapterPower12 emplements reverned 객체로 변환됩니다. ABSBASEPOWER; // 어댑터 구성 방법을 전달하여 공개 어댑터로 변환 될 객체를 전달합니다. } // 대상 객체 구현 방법 공개 void output12v () {// 외부 전력 값 가져 오기 플로트 파워 플로트 = 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.absbasepower.getUnit () + "] power! ...")입니다. }}3.7 12V 전원 어댑터
package com.demo.adapter; import com.demo.power.absbasepower; import com.demo.power.v12.ipower12;/** * 전원 어댑터 (대상 객체 인터페이스를 구현합니다 : 12V 전원 인터페이스) 클래스 어댑터 모드 * * @author * */public classper12 adapter12ext extends extends empless impless impless impless impless impless empless empless intrenst 시공 방법은 공개 adapterpower12ext (AbsbasePower absbasepower)로 변환 할 객체를 전달합니다. } // 대상 객체 구현 @override public void output12v () {// 외부 전력 값 가져 오기 플로트 파워 플로트 = 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; import com.demo.power.v12.ipower12; import com.demo.power.v12.power12; import com.demo.power.v220.power220;/** * @clown * * @clower * */public class client {/** *@param args */public static void main (String [] args) {// 먼저 220v 전원 공급 장치 개체를 생성합니다! Power220 Power220 = New Power220 (); power220.output220v (); // 다음으로 12V 전원 공급 장치 객체를 생성하고 있습니다! iPower12 Power12 = 새로운 Power12 (); Power12.output12v (); // 마지막으로 전력 어댑터를 사용하여 220V 전원 공급 장치를 12V 전원 공급 장치로 변환합니다! 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 Operation Dom Node Tips 요약", "Java 파일 및 디렉토리 작동 팁 요약"및 "Java Cache Operation Tips의 요약"을 볼 수 있습니다.
이 기사가 모든 사람의 Java 프로그래밍에 도움이되기를 바랍니다.