zoukankan      html  css  js  c++  java
  • 设计模式之装饰模式

        装饰模式:当系统需要新的功能的时候,是向旧的类中添加新的代码。这样新的代码通常装饰了原有类的核心职责或者主要行为。

        优点:把类中的装饰功能从类中搬移去除,这样可以简化原有的类。有效地把类的核心职责和装饰功能分开。而且可以去除相关类中重复的装饰逻辑。

        装饰模式实现穿衣服功能:

       

     class Program
        {
            static void Main(string[] args)
            {
                Person cw = new Person("cw");
                TShirts t = new TShirts();
                BigTrouser b = new BigTrouser();
                t.Decorate(cw);
                b.Decorate(t);
                b.Show();
                Console.ReadKey();
            }
    
    
            public class Person
            {
                public Person()
                {
    
                }
    
                private string _name;
                public Person(string name)
                {
                    _name = name;
                }
    
                public virtual void Show()
                {
                    Console.Write("装扮的{0}",_name);
                }
            }
    
            public class Finery:Person
            {
                protected Person component;
    
                public void Decorate(Person component)
                {
                    this.component = component;
                }
    
                public override void Show()
                {
                   if(component!=null)
                   {
                       component.Show();
                   }
                }
            }
    
            public class TShirts:Finery
            {
                public override void Show()
                {
                    base.Show();
                    Console.Write("大T恤3");
                }
            }
    
            public class BigTrouser:Finery
            {
                public override void Show()
                {
                    base.Show();
                    Console.Write("垮裤");
                }
            }

    代码运行结果:

         

  • 相关阅读:
    ring0 ShadowSSDTHook
    ring0 恢复SSDTHook
    Go的CSP并发模型
    [转]An overview of Openvswitch implementation
    堆排序
    集群 分布式
    云介绍
    云分层
    happens-before
    Java异常
  • 原文地址:https://www.cnblogs.com/weiqiangwaideshijie/p/8031285.html
Copyright © 2011-2022 走看看