• 装饰器模式,实现aop


    在不改变原来类的基础上,给原来的类的某方法扩展功能

     public class DirectorAop
        {
            public static void Show()
            {
                User user = new User() {
                    Name = "jump",
                    Password="123123"
                };
    
                Console.WriteLine("原来只干注册的事情");
                IUserProcessor userProcessor = new UserProcessor();
                userProcessor.RegUser(user);
    
                Console.WriteLine("实现aop后,的装饰器模式实现:");
                userProcessor = new UserProcessorDirecotr(userProcessor);//装饰了一层
                userProcessor.RegUser(user);
    
            }
        }
    
        public class User
        {
            public string Name { get; set; }
            public string Password { get; set; }
        }
    
        public interface IUserProcessor
        {
            void RegUser(User user);
        }
    
        /// <summary>
        /// 需要被装饰的类【就是要被扩展功能的类】
        /// </summary>
        public class UserProcessor : IUserProcessor
        {
            public void RegUser(User user)
            {
                Console.WriteLine("注册用户:" + user.Name);
            }
        }
    
        /// <summary>
        /// 装饰器类【就是扩展功能的类】
        /// </summary>
        public class UserProcessorDirecotr : IUserProcessor
        {
            private IUserProcessor _userProcessor;
            public UserProcessorDirecotr(IUserProcessor userProcessor)
            {
                this._userProcessor = userProcessor;
            }
            public void RegUser(User user)
            {
                Console.WriteLine("注册前,做点其他的吧");
                _userProcessor.RegUser(user);
                Console.WriteLine("注册成功,发个邮件吧");
            }
        }
  • 相关阅读:
    java复习基础篇——反射
    java复习基础篇——Mysql数据库
    java复习基础篇——网络协议
    java复习基础篇——类型转换
    Full Source下载(IE扩展)
    [原]JS俄罗斯方块
    swt api和demo
    W3CSchool.chm
    一个C#写的RSS
    [原]JS Eval参数单引号问题
  • 原文地址:https://www.cnblogs.com/LJP-JumpAndFly/p/12165182.html
Copyright © 2020-2023  润新知