九大常用設計モード学習-アダプタモード


設計モード学習記録:一言+コード体得設計モード.
九大常用設計モード
単一モード:https://blog.csdn.net/qq_37902949/article/details/87903569
単純ファクトリ/静的ファクトリメソッドモード:https://blog.csdn.net/qq_37902949/article/details/87931684
ファクトリメソッドモード:https://blog.csdn.net/qq_37902949/article/details/87931610
エージェント・モード:https://blog.csdn.net/qq_37902949/article/details/87931864
テンプレートメソッドモード:https://blog.csdn.net/qq_37902949/article/details/87931912
オブザーバモード:https://blog.csdn.net/qq_37902949/article/details/87931995
アダプタモード:https://blog.csdn.net/qq_37902949/article/details/87931940
デコレーションモード:https://blog.csdn.net/qq_37902949/article/details/87931800
ポリシー・モード:https://blog.csdn.net/qq_37902949/article/details/87932047
≪アダプタ・モード|Adapter Mode|ldap≫:1つのクラスのインタフェースを顧客が望む別のインタフェースに変換し、Adapterモードにより、インタフェースが互換性がないため一緒に動作できないクラスを一緒に動作させることができます.
アダプタには、クラスアダプタ、オブジェクトアダプタ、インタフェースアダプタがあります.の
USBインタフェースとNICインタフェースの変換の例はアダプタモードを体得します.
/**
 * USB  
 */
public interface USB {
	void useUsb();
}
/**
 * USB    
 */
public class UsbImpl implements USB {

	@Override
	public void useUsb() {
		System.out.println("   USB  ");
	}
}
/**
 * Wlan  
 */
public interface Wlan {
	void useWlan();
}
/**
 *        
 */
public class WlanImpl implements Wlan {

	@Override
	public void useWlan() {
		System.out.println("  Wlan  ");
	}
}

 クラスアダプタ
/**
 *     
 */
public class Adapter extends WlanImpl implements USB {

	@Override
	public void useUsb() {
		useWlan();
	}
}
/**
 *       
 */
public class TestClassAdapter {
    public static void main(String[] args) {
        //   USB Wlan       
        Adapter adapter = new Adapter();
        adapter.useUsb();
    }
}

オブジェクトアダプタ 
/**
 *      
 */
public class USBToWlanAdapter implements USB {
	
	private Wlan wlan;

	public USBToWlanAdapter(Wlan wlan) {
		this.wlan = wlan;
	}

	@Override
	public void useUsb() {
		wlan.useWlan();
	}
}
/**
 *        
 */
public class TestObjectAdapter {
    public static void main(String[] args) {
        USBToWlanAdapter adapter = new USBToWlanAdapter(new WlanImpl());
        adapter.useUsb();
    }
}

インタフェースアダプタ、カスタマイズ操作が便利
/**
 *   
 */
public interface FunctionInterface {
	void optional1();
	void optional2();
	void optional3();
	void optional4();
	void optional5();
}
/**
 *      
 */
public abstract class AbstractFunctionInterface implements FunctionInterface {

	@Override
	public void optional1() {
		// TODO Auto-generated method stub
	}

	@Override
	public void optional2() {
		// TODO Auto-generated method stub
	}

	@Override
	public void optional3() {
		// TODO Auto-generated method stub
	}

	@Override
	public void optional4() {
		// TODO Auto-generated method stub
	}

	@Override
	public void optional5() {
		// TODO Auto-generated method stub
	}
}
/**
 *      ,          
 */
public class FunctionInterfaceImpl extends AbstractFunctionInterface {

	@Override
	public void optional3() {
		// TODO Auto-generated method stub
	}

	@Override
	public void optional4() {
		// TODO Auto-generated method stub
	}
}

設計モデルはソフトウェア開発者がソフトウェア開発の過程で一般的な問題に直面する解決策である.
デザインモデルはやはりゆっくりと体得しなければなりません.の