using System; namespace Bridge.CoffeeBridgeImp { /**//// <summary> /// Coffee 的摘要说明。 /// </summary> public abstract class Coffee { private CoffeeImp coffeeImp ; public CoffeeImp getCoffeeImp() { return this.coffeeImp; } public void setCoffeeImp() { this.coffeeImp = CoffeeImpSingleton.getCoffeeImp(); } } /**//// <summary> /// 加不加奶的行为接口 /// </summary> public abstract class CoffeeImp { public abstract void pourCoffeeImp(string name) ; } /**//// <summary> /// CoffeeImpSingleton 的摘要说明。 /// </summary> public class CoffeeImpSingleton { private static CoffeeImp coffeeImp; public static CoffeeImp getCoffeeImp () { return coffeeImp; } public CoffeeImpSingleton(CoffeeImp coffeeImp) { CoffeeImpSingleton.coffeeImp = coffeeImp; } } /**//// <summary> /// FragrantCoffeeImp 的摘要说明。 /// </summary> public class FragrantCoffeeImp:CoffeeImp { public FragrantCoffeeImp() { // // TODO: 在此处添加构造函数逻辑 // } public override void pourCoffeeImp(string name ) { Console.WriteLine(name +"什么也没加,清香"); } } /**//// <summary> ///中杯 /// </summary> public class MediumCoffee :Coffee { public MediumCoffee() { base.setCoffeeImp(); } public void pourCoffee() { CoffeeImp coffeeImp = this.getCoffeeImp(); for (int index =0; index <2; index++) coffeeImp.pourCoffeeImp("小杯"); } } /**//// <summary> /// MilkCoffeeImp 的摘要说明。 /// </summary> public class MilkCoffeeImp :CoffeeImp { public MilkCoffeeImp() { // // TODO: 在此处添加构造函数逻辑 // } public override void pourCoffeeImp(string name) { Console.WriteLine(name +"加了美味的牛奶"); } } /**//// <summary> /// SuperSizeCoffee 的摘要说明。 /// </summary> public class SuperSizeCoffee:Coffee { public SuperSizeCoffee() { base.setCoffeeImp(); } public void pourCoffee() { CoffeeImp coffeeImp =base.getCoffeeImp(); for (int index =0; index <5; index++) coffeeImp.pourCoffeeImp("大杯"); } } 一下为测试代码 /**//// <summary> /// BridgeTest 测试Bridge模式 /// </summary> class BridgeTest { /**//// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main(string[] args) { // // TODO: 在此处添加代码以启动应用程序 // //拿出牛奶// CoffeeImpSingleton coffeeImpSingleton = new CoffeeImpSingleton(new FragrantCoffeeImp()); CoffeeImpSingleton coffeeImpSingleton = new CoffeeImpSingleton(new MilkCoffeeImp()); //中杯加奶 MediumCoffee mediumCoffee = new MediumCoffee(); mediumCoffee.pourCoffee(); //大杯加奶 SuperSizeCoffee superSizeCoffee = new SuperSizeCoffee(); superSizeCoffee.pourCoffee(); Console.ReadLine(); } }} 转载于:https://www.cnblogs.com/alonestarsz/archive/2004/11/19/65826.html