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

     /// <summary>
        /// 装饰模式的基类
        /// </summary>
        public class Person
        {
            private string name;
    
            /// <summary>
            /// 子类使用无参构造函数,所以父类必须有这个构造函数
            /// 构造函数的调用顺序是从父类开始,然后调用子类
            /// </summary>
            public Person()
            {
            }
    
            public Person(string n)
            {
                name = n;
            }
    
            /// <summary>
            /// 多态方法,使得对象可以是用装饰,也可以不使用装饰
            /// 如加密数据要保存到数据库,则不需要使用加密
            /// </summary>
            public virtual void Oporation()
            {
                Console.Write("decorate " + name);
            }
        }
    
        /// <summary>
        /// 加入一层装饰的具体类
        /// 它和父类是一类对象,是对父类功能的扩展,所以使用继承
        /// </summary>
        public class DecoratePerson:Person
        {
            private Person person;
    
            /// <summary>
            /// 设置要装饰的对象
            /// </summary>
            /// <param name="p"></param>
            public void SetPerson(Person p)
            {
                person = p;
            }
    
            public override void Oporation()
            {
                //调用一个对象的方法前,首先要确定该对象不为空
                if (person != null)
                {
                    person.Oporation();
                    Console.Write("put on traveserse");
                }
            }
        }
    
        public class TestClass
        {
            public static void Run()
            {
                Person p = new Person("xiao");
                DecoratePerson dp = new DecoratePerson();
                dp.SetPerson(p);
                dp.Oporation();
            }
        }

    装饰模式

  • 相关阅读:
    k8s官网 基础知识入门教程
    Mac安装minikube
    docker下创建crontab定时任务失败
    docker save提示no space left on device错误
    cx_Oracle读写clob
    Ossec添加Agent端流程总结
    ossec变更alert等级及配置邮件预警
    linux安全配置检查脚本_v0.5
    linux命令返回值的妙用
    Shell脚本判断内容为None的方式
  • 原文地址:https://www.cnblogs.com/363546828/p/3277442.html
Copyright © 2011-2022 走看看