zoukankan      html  css  js  c++  java
  • 设计模式学习---代理类

    今天继续看了代理模式,总结一下,觉得这个代理类主要是通过一个借口抽象了一些代理类和被代理类公用的方法。然后让被代理类实现这些方法。

    再让被代理类通过代理类中来调用这些方法。

    代码如下:PersonA表示真正追求美女的人,PersonB则是PersonA与美女的传话人,就是代理类。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace 代理模式
    {
        interface GiveGift   //代理类与被代理类共有的接口
        {
            void Gift();
        }
        class beautifulGirl    //目标类
        {
            private string name;
            public string Name
            {
                get
                {
                    return name;
                }
                set
                {
                    name = value;
                }
            }
        }
        class PersonA : GiveGift  //被代理人
        {
            beautifulGirl MyGirl;
            public PersonA(beautifulGirl girl)
            {
                this.MyGirl=girl;
               // Console.WriteLine(MyGirl.Name);
            }
            public void Gift()
            {
                Console.WriteLine("PersonA送给{0}的礼物", this.MyGirl.Name);
            }
        }
        class PersonB : GiveGift     //代理人类
        {
            public PersonA realMan;
            public PersonB(beautifulGirl girl)
            {
                realMan = new PersonA(girl);
            }
            public void Gift()
            {
                realMan.Gift();
            }
        }
        class Program
        {
            static void Main(string[] args)
            {
                beautifulGirl girl = new beautifulGirl();
                girl.Name = "小雯";
                PersonB Sman = new PersonB(girl);
                Sman.Gift();
                Console.ReadKey();
            }
        }
    }

    输出结果:

  • 相关阅读:
    CF1051F The Shortest Statement
    [ZJOI2006]书架
    [FJOI2007]轮状病毒
    CF147B Smile House
    HDU4415 Assassin’s Creed
    飞行员配对方案问题
    [NOI2005]瑰丽华尔兹
    [NOIP2016]换教室
    [国家集训队]部落战争
    [NOI2005]聪聪与可可
  • 原文地址:https://www.cnblogs.com/JsonZhangAA/p/5487528.html
Copyright © 2011-2022 走看看