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

    明确个目标,一直走下去
  • 相关阅读:
    Springboot注解@Scheduled定时任务的使用
    Springboot整合WebSocket和RabbitMQ实现服务器消息推送
    Springboot集成WebSocket实现消息推送功能
    RabbitMq: 主题交换机的使用(Topic Exchange)
    Rabbitmq: @RabbitListener 和 @RabbitHandler 搭配使用
    RabbitMQ开启 mqtt 协议
    @Import的简单使用
    idea快速生成对应数据库的实体类
    HttpClient封装工具类
    TypeScript基本概念
  • 原文地址:https://www.cnblogs.com/fhlj/p/3613684.html
Copyright © 2011-2022 走看看