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

  • 相关阅读:
    css 修改input中placeholder提示问题颜色
    js 获取屏幕或元素宽高...
    js时间相关
    golang——gRPC学习
    golang——win10环境protobuf的使用
    golang——net/rpc/jsonrpc包学习
    golang——net/rpc包学习
    golang——log包学习
    golang——database/sql包学习
    mysql——免安装配置
  • 原文地址:https://www.cnblogs.com/shineqiujuan/p/1699500.html
Copyright © 2011-2022 走看看