C# 代理模式

// See https://aka.ms/new-console-template for more information
/*个人理解
  Girl:实际要东西的人
  Middlemen:帮助Girl买她要的东西
 */
Person middlemen   = new Middlemen();
middlemen.BuyPhone();
middlemen.BuyPhoneCard();

public abstract class Person
{
    public abstract void BuyPhone();
    public abstract void BuyPhoneCard() ;
}

public class Girl : Person
{
    public override void BuyPhone()
    {
        Console.WriteLine("我要买小米手机");
    }

    public override void BuyPhoneCard()
    {
        Console.WriteLine("我要买小米手机卡");
    }

}

//Proxy 中间商
public class Middlemen : Person
{
    Girl girl;
    public Middlemen() 
    {
        if (girl is null) 
        {
            girl = new();
        }
        girl.BuyPhone();
        girl.BuyPhoneCard();
    }
    public override void BuyPhone()
    {
        Console.WriteLine("中间商卖小米手机");
    }

    public override void BuyPhoneCard()
    {
        Console.WriteLine("中间商卖小米手机卡");
    }
}

  

posted @ 2022-08-31 21:24  孤海飞雁  阅读(20)  评论(0)    收藏  举报