码迷,mamicode.com
首页 > 其他好文 > 详细

AOP

时间:2019-08-16 10:28:01      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:bsp   res   面向   重复   ram   one   string   异常处理   cache   

一、Aop是什么?

一段很常见的代码示例:

技术图片

    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
        public string DosomeThing()
        {
            return "hello";
        }
        public string GetSomeOne()
        {
            try
            {
                var result = DosomeThing();
                //_logger.Information(result);
                return result;
            }
            catch (Exception e)
            {
                //_logger.Error(e.Message);
                return null;
            }
        }
        public string GetOtherOne()
        {
            try
            {
                var result = DosomeThing();
                //_logger.Information(result);
                return result;
            }
            catch (Exception e)
            {
                //_logger.Error(e.Message);
                return null;
            }
        }
    }

这是一段很典型的面向过程的代码,我们可以看到有相同的异常处理逻辑,

如果我们想要避免重复的代码,我们至少可以把异常处理封装一下:

技术图片

    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
        public string DosomeThing()
        {
            return "hello";
        }
        public string GetOtherOne()
        {
            return TryRun<String>(() => DosomeThing());
        }
        public T TryRun<T>(Func<T> action)
        {
            try
            {
                return action.Invoke();
            }
            catch (Exception e)
            {
                //_logger.Error(e.Message);
                return default(T);
            }
        }
    }

上面仅仅把重复的异常处理封装一下,但是真实的方法代码与日志代码纠缠在一起,

违反了 单一责任原则有没有一种可能,让我们不需要在原来的代码上显式调用 TryCache 呢?

 

AOP

标签:bsp   res   面向   重复   ram   one   string   异常处理   cache   

原文地址:https://www.cnblogs.com/fger/p/11362215.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!