zoukankan      html  css  js  c++  java
  • C#装饰模式

    using System;
    using System.Collections.Generic;
    using System.Text;

    namespace 装饰模式
    {
        class Person
        {
            public Person()
            {
            }

            private string name;
            public Person(string name)
            {
                this.name = name;
            }

            public virtual void Show()
            {
                Console.WriteLine("装扮的{0}", name);
            }
        }

        class Finery : Person
        {
            protected Person component;

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

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

        class TShirts : Finery
        {
            public override void Show()
            {
                Console.Write("大T-Shirt ");
                base.Show();
            }
        }

        class BigTrouser : Finery
        {
            public override void Show()
            {
                Console.Write("垮裤 ");
                base.Show();
            }
        }

        class Sneakers: Finery
        {
            public override void Show()
            {
                Console.Write("破球鞋 ");
                base.Show();
            }
        }

        class Program
        {
            static void Main(string[] args)
            {
                Person ps = new Person("小江");

                Sneakers sn = new Sneakers();
                BigTrouser bt = new BigTrouser();
                TShirts ts = new TShirts();

                sn.Decorate(ps);
                bt.Decorate(sn);
                ts.Decorate(bt);

                ts.Show();
            }
        }
    }

    明确个目标,一直走下去
  • 相关阅读:
    gRPC实战
    深入浅出docker
    jquery操作复选框(checkbox)的12个小技巧总结
    System.Diagnostics.Process.Start的妙用
    Redis持久化数据丢失及解决
    【ASP.NET 问题】IIS发布网站后出现 "处理程序“PageHandlerFactoryIntegrated”在其模块列表中有一个错误"的解决办法
    asp.net 网页抓取内容
    Ajax学习资源大全[本来是转载的,但是现在我增加了很多]
    jquery如何判断checkbox(复选框)是否被选中
    JS获取屏幕高度
  • 原文地址:https://www.cnblogs.com/fhlj/p/3613684.html
Copyright © 2011-2022 走看看