アダプタモード


文章を整理する

  • アダプタモードは、クラスのインタフェースをユーザが望むインタフェース形式に変換するモードである.
  • アダプタモード

  • は、クラスのインタフェースをクライアントが使用する他のインタフェースに変換する.
  • アダプタを使用すると、インタフェース호환성の問題で一緒に使用できないクラスを接続して使用できます.
  • 、すなわち、통신は、2つの異なるインターフェースの間で実現され得る.
  • 電源コンセントを見るとわかりやすいです.
  • 韓国の標準プラグは日本ではコンセントに差し込めないため、丸を一字型にできるアダプタを取り付ける必要がある.
  • のように、アダプタは、スロットのインタフェースをスロットから所望のインタフェースに変換することができる.
  • は、あるインタフェースをクライアントが要求するインタフェース形式に適応させる役割を果たす.
  • public interface Duck {
    	public void quack();
    	public void fly();
    }
    
    public class MallardDuck implements Duck {
    
    	@Override
    	public void quack() {
    		System.out.println("Quack");
    	}
    	
    	@Override
    	public void fly() {
    		System.out.println("I'm flying");
    	}
    }
    public interface Turkey {
    
    	public void gobble();
    	public void fly();
    	
    }
    
    public class WildTurkey implements **Turkey**{
    
    	@Override
    	public void gobble() {
    		System.out.println("Gobble gobble");
    	}
    	
    	@Override
    	
    	public void fly() {
    		System.out.println("I'm flying a short distance");
    	}
    }
  • Duckオブジェクトが欠けていると仮定し、Turkeyオブジェクトを使用する必要があります.
  • インタフェースが異なるため、トルコオブジェクトを直接使用することはできません.
  • アダプタの作成を開始します.
    public class TurkeyAdapter implements Duck {
    
    	Turkey turkey;
    
    	public TurkeyAdapter(Turkey turkey) {
    		this.turkey = turkey;
    	}
    
    	@Override
    	public void quack(){
    	 turkey.gobble();
    
    	}
    	
    	@Override
    	public void fly() {
    		for(int i=0; i<5; i++) {
    			 turkey.fly();
    		}
    	}
    }

    こうぞう


  • クライアント:ターゲットインタフェース.
  • Adaptee:サードパーティ製ライブラリまたは外部システムを指します.
  • Turkey
  • Target Interface:
  • アダプタで実装されたインタフェース.
  • クライアントは、ターゲットインタフェースを介してAdapteeのサードパーティライブラリを使用します.
  • Duck
  • Adapter:
  • クライアントとAdapteeの互換性がありません.
  • ターゲットインタフェースが実装され、クライアントはターゲットインタフェースを介してアダプタに要求を送信する.
  • アダプタは、Adapteeが理解できるようにクライアント要求を送信し、Adaptee
  • に処理を依頼する.
  • クライアントでアダプタを使用する方法.
  • クライアントは、ターゲットインタフェース呼び出しメソッドを使用してアダプタに要求を発行します.
  • アダプタは、アダプタインタフェースを使用して1つ以上の要求を呼び出しに変換します.
  • クライアントはコール結果を受信しましたが、中間にアダプタがあるかどうかは分かりません.
  • アダプタモード呼び出しプロシージャ



    2つの実施方法

  • クラスアダプタ:
  • Javaを継承
  • オブジェクトアダプタ:Javaを合成するための

  • 長さの比較



    アダプタモードの整理

  • Adapteeを中心に、ターゲットインタフェースのみがクライアントに表示されます.
  • ターゲットインタフェースを実施することにより、  変更.
  • Adapteeが望むようにクライアント要求を間接的に変更します.
  • 互換性のない私たちのインタフェースはAdapteeと一緒に使用できます.
  • リファレンスソース

  • https://jusungpark.tistory.com/22
  • https://niceman.tistory.com/141
  • https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=582754