この記事では、Javaアダプターモードアプリケーションの電源アダプター機能について説明します。次のように、参照のために共有してください。
1。パターン定義
2つのアダプターモードがあります
1オブジェクトアダプターモードこのアダプターモードでは、アダプターはラップするクラスオブジェクトの物理エンティティを保持します。
クラス2アダプターモードこのアダプターモードでは、アダプターは実装されたクラスから継承します。
2。モデルの例
1パターン分析
このモードを説明するために、鉛筆電源アダプターを借ります。
すでに既存のAC電源ラップトップパワーアダプター
2アダプターモードの静的モデリング
3つのコードの例
3.1抽象的な電源設立
パッケージcom.demo.power;/** *パワーベースクラス * * @author * */public abstract class absbasepower {// Voltage Value Private Float Power; //ユニットプライベート文字列ユニット= "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(string unit){this.unit = unit; }}3.2 220V電源インターフェイス
パッケージcom.demo.power.v220;/** * 220vパワーインターフェイス * * @author * */public interface ipower220 {// 220v AC電源印刷public void output220v();}3.3 220V電源実装クラス
パッケージcom.demo.power.v220; import com.demo.power.absbasepower;/** * 220v電源 * * @author * */public class power220拡張AbsbasePowerはipower220 {// construmte method power220(){super(220); } // 220V電力出力public void output220v(){system.out.println( "----これは[" + this.getPower() + this.getunit() + "] Power!..."); }}3.4 12Vパワーインターフェイス
パッケージcom.demo.power.v12;/** * 12vパワーインターフェイス * * @author * */public interface ipower12 {// 12v電源印刷public void output12v();}3.5 12V電源実装クラス
パッケージcom.demo.power.v12; import com.demo.power.absbasepower;/** *通常の12v電源 * * * @author * */public class power12拡張ABSBASEPOWER IPOWER12 {// 12V電源構築方法パブリックパワー12(){スーパー(12); } // 12V電力出力public void output12v(){system.out.println( "---これは[" + this.getPower() + this.getunit() + "] wower!..."); }}3.6 12Vパワーオブジェクトアダプター
パッケージcom.demo.adapter;インポートcom.demo.power.absbasepower;インポートcom.demo.power.v12.ipower12;/** *電源アダプター(すなわち、12V電源インターフェイス、すなわち、12V電源インターフェイスを実装) ABSBASEPOWER; //アダプター構造方法は、オブジェクトを渡してパブリックアダプターパワーに変換されます12(absbasepower absbasepower){this.absbasepower = absbasepower; } //ターゲットオブジェクトメソッドを実装しますpublic void output12v(){//外部電源値Float float float = 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電源アダプター
パッケージcom.demo.adapter;インポートcom.demo.power.absbasepower;インポートcom.demo.power.v12.ipower12;/** *電源アダプター(ターゲットオブジェクトインターフェイス、すなわち12Vパワーインターフェイスを実装)クラスアダプターモード * @author *構造方法は、オブジェクトを渡して、パブリックAdapterPower12ext(absbasePower absbasepower){super(absbasepower.getPower());に変換されます。 } //ターゲットオブジェクトを実装@Override public void output12v(){//外部電源値float floatfloat = 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;インポートcom.demo.adapter.adapterpower12ext;インポートcom.demo.power.v12.ipower12; Import com.demo.demo.power.v12.power12; import com.demo.v220.v20.power220; */public class client {/** *@param args */public static void main(string [] args){//最初に220V電源オブジェクトを生成します! Power220 Power220 = new Power220(); Power220.Output220V(); //次に、12V電源オブジェクトを生成します! ipower12 power12 = new 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操作DOMノードのヒントの要約」、「Javaファイルの要約およびディレクトリ操作のヒント」、「Java Cache操作のヒントの要約」というトピックを見ることができます。
この記事がみんなのJavaプログラミングに役立つことを願っています。