alonestarsz

博客园 首页 新随笔 联系 订阅 管理

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();
        }

    }

}

posted on 2004-11-19 16:29  天煞孤星  阅读(420)  评论(0编辑  收藏  举报