インタフェース型モードのブリッジモード


1.抽象と分離して両者を独立に進化させることを望む場合は、Bridge(ブリッジ)モードを使用することができる.例を挙げる
//    
public abstract class ImpLog {
     public abstract void execute(String msg);
}
//java     
public class JImpLog extends ImpLog {
    public void execute(String msg) {
        System.out.println("JImpLog:"+msg);
    }
}
//net     
public class NImpLog extends ImpLog {
    public void execute(String msg) {
        System.out.println("NImpLog:"+msg);
    }
}
//     
public abstract class Log {
    public ImpLog implementor;

    public  void write(String log){
        implementor.execute(log);
    }
}
//   java     
public class TextFileLog extends Log{
    public TextFileLog(JImpLog jImpLog){
        implementor = jImpLog;
    }
    public void write(String log) {
        implementor.execute(log);
    }
}
//   net     
public class DatabaseLog extends Log {
    public DatabaseLog(NImpLog nImpLog){
        implementor = nImpLog;
    }
    public void write(String log) {
        implementor.execute(log);
    }
}
//   :       log        
public class Client {
    public static void main(String[] args) {
        Log dblog = new DatabaseLog(new NImpLog());
        dblog.write("NET    Database Log");

        Log txtlog = new TextFileLog(new JImpLog());
        txtlog.write("Java    Text File Log");
    }
}
//  
NImpLog:NET    Database Log
JImpLog:Java    Text File Log

3.まとめ:Bridgeモードで最も一般的な例は、データベースドライバなどのドライバです.Bridgeモードは抽象とその抽象的な方法の実現を分離する.BridgeモードはAdapterモードのクラス適合方式で実現される.4.AdapterとBridgeの違い:4.1人の白話を引用する.1 Adapterわあ、誰だ?出て行け.—数分後、化粧の後.——-わあ、XX長ですね.どうぞ、どうぞ.ある場面ではだめだったのか、今はいい②Bridgeうん、この銃はいいですね.弾丸には穿甲弾、散弾、小さな核弾があるそうです.銃と弾丸を縛ったら、何種類の銃が必要ですか.ある場合、銃は銃であり、行為は弾丸を射出するが、弾丸は独立して発展することができ、使用する場合は、銃と弾丸が再び一緒になければならない.4.2専門語のAdapterを引用する:2つの互換性のないクラスを結合して使用し、構造型モードに属し、Adaptee(アダプター)とAdaptor(アダプタ)の2つのアイデンティティが必要である.2つの関係のないクラスを組み合わせて使用することがよくあります.第1の解決策は、それぞれのクラスのインタフェースを変更することですが、ソースコードがない場合、または、1つのアプリケーションのためにそれぞれのインタフェースを変更したくない場合です.Adapterを使用して、この2つのインタフェースの間にハイブリッドインタフェースBridgeを作成します.抽象と動作を区別し、それぞれ独立していますが、オブジェクト向けの設計の基本概念に動的に結合することができます.オブジェクトという概念は実際には属性と動作の2つの部分から構成されています.動作は1つのオブジェクトに含まれますが、場合によっては、これらの動作も分類して、ブリッジモードの用途である全体的な動作インタフェースを形成する必要があります.5.参考:http://www.2cto.com/kf/201404/293493.html