zoukankan      html  css  js  c++  java
  • AOP 编程

    1.静态代理

      定义一个接口,用以规定执行方法

        public interface IOrderProcessor
        {
            void Submit();
        }

      实现执行方法

        public class OrderProcessor : IOrderProcessor
        {
            public void Submit()
            {
                Console.WriteLine("提交订单");
            }
        }

      写AOP的拦截方法

        public class OrderProcessorDecorator : IOrderProcessor
        {
            public IOrderProcessor OrderProcessor { get; set; }
            public OrderProcessorDecorator(IOrderProcessor orderprocessor)
            {
                OrderProcessor = orderprocessor;
            }
            public void Submit()
            {
                Console.WriteLine("执行前拦截...");
                OrderProcessor.Submit();
                Console.WriteLine("执行后拦截...");
            }
        }

      调用

                IOrderProcessor orderprocessor = new OrderProcessorDecorator(new OrderProcessor());
                orderprocessor.Submit();

      这里,我们主要是想去执行OrderProcessor.Submit(),用上AOP方法,将其嵌入OrderProcessorDecorator.Submit(),用以对执行前后进行操作(一般可用于写日志)

      对之后新增的方法(如,新加一个OrderProcessor2类),若是要执行其Submit()方法,在调用的时候new 一个参数过去就行

      如下:

        public class OrderProcessor2 : IOrderProcessor
        {
            public void Submit()
            {
                Console.WriteLine("提交订单2");
            }
        }

      调用

                IOrderProcessor orderprocessor = new OrderProcessorDecorator(new OrderProcessor2());
                orderprocessor.Submit();

    2.动态代理

  • 相关阅读:
    mac前端解除端口占用命令
    Mac安装Brew
    Mac Webstrom 快捷键
    linux yarn安装
    js-新兴的API,最佳实践,离线应用于客户端存储
    js-高级技术
    js-Ajax与Comet
    js-错误处理与调试,JSON
    js-DOM2,表单脚本
    js-事件
  • 原文地址:https://www.cnblogs.com/wskxy/p/10813665.html
Copyright © 2011-2022 走看看