仿照<java与模式>中bridge模式的例子自己改写的一个例子: 有N个飞机制造商(AirBus.....),每个飞机制造商有客机(PassenagerPlane)和货机(CargoPlane).....实现代码如下: 1.飞机制造商抽象接口: interface IAirPlaneMaker { string name { get;} //制造商名称 IAirPlane producePass(); //生产一量客机 //生产一两货机 } 2.飞机抽象接口 interface IAirPlane { void Fly(); //飞行方法 IAirPlaneMaker maker { get;set;} //制造商 } 3.飞机制造商的一个实现 class AirBus : IAirPlaneMaker { private string _name = "AirBus company"; IAirPlaneMaker Members#region IAirPlaneMaker Members public string name { get { return this._name; } } public IAirPlane producePass() { IAirPlane pass = new PassengerPlane(); pass.maker = this; return pass; } #endregion } 4 飞机的实现 class PassengerPlane : IAirPlane { private IAirPlaneMaker _maker; IAirPlane Members#region IAirPlane Members public void Fly() { System.Console.WriteLine("The " + _maker.name + "'s PassenterPlane is flying~~~!"); } public IAirPlaneMaker maker { get { return this._maker; } set { this._maker = value; } } #endregion } class CargoPlane : IAirPlane { private IAirPlaneMaker _maker; IAirPlane Members#region IAirPlane Members public void Fly() { System.Console.WriteLine("The " + _maker.name + "'s CargoPlane is flying~~~!"); } public IAirPlaneMaker maker { get { return this._maker; } set { this._maker = value; } } #endregion } 5 通过这种bridge模式,客户端代码非常简洁 IAirPlaneMaker maker = new AirBus(); IAirPlane passPlane = maker.producePass(); passPlane.Fly(); 考虑:飞机制造商中生产飞机的方式不是很好,藕合度太高,如果要新增加一种飞机生产,则必须改变制造商接口极其所有实现子类。考虑使用工厂模式实现。。。。。 转载于:https://www.cnblogs.com/DotNetFresh/archive/2005/06/23/179618.html