zoukankan      html  css  js  c++  java
  • 装饰模式【大话设计模式Demo】

    代码
    class DecoratePattern
    {
    static void Main(string[] args)
    {
    Person person
    = new Person("小菜");
    Sneaker ydx
    = new Sneaker();
    BigTrouser kk
    = new BigTrouser();
    TShirts dtx
    = new TShirts();

    ydx.Decorate(person);
    kk.Decorate(ydx);
    dtx.Decorate(kk);
    dtx.Show();
    Console.Read();

    }
    }

    class Person
    {
    public Person()
    { }
    private string Name;
    public Person(string name)
    {
    this.Name = name;
    }
    public virtual void Show()
    {
    Console.WriteLine(
    "装扮的{0}", Name);
    }
    }
    /// <summary>
    /// 穿衣服的人
    /// </summary>
    class Finery : Person
    {
    protected Person component;

    //打扮
    public void Decorate(Person _component)
    {
    this.component = _component;
    }

    public override void Show()
    {
    if (component != null)
    {
    component.Show();
    }
    }
    }

    /// <summary>
    /// 穿T恤的人
    /// </summary>
    class TShirts : Finery
    {
    public override void Show()
    {
    Console.WriteLine(
    "大T恤");
    base.Show();
    }
    }
    /// <summary>
    /// 穿裤子的人
    /// </summary>
    class BigTrouser : Finery
    {
    public override void Show()
    {
    Console.WriteLine(
    "跨裤");
    base.Show();
    }
    }

    /// <summary>
    /// 穿运动的人
    /// </summary>
    class Sneaker : Finery
    {
    public override void Show()
    {
    Console.WriteLine(
    "跨裤");
    base.Show();
    }
    }

  • 相关阅读:
    阅读代码
    openSips
    rc.local 问题
    MyBatis框架使用(一)
    【数据结构杂谈】
    【AGC052A】
    【杜教筛学习笔记】
    CF618F Double Knapsack
    [NOI2016] 循环之美
    【BZOJ 4668 冷战】
  • 原文地址:https://www.cnblogs.com/shineqiujuan/p/1699500.html
Copyright © 2011-2022 走看看