• c# 部分技术的理解


    • AOP 面向切面编程 和 Interceptor 拦截器

      这俩放到一起,AOP其实是一种编程思想,而拦截器是贯彻了这种编程思想的一种实现方式,其他还有Filter 过滤器等,也是沿用了这种思想。

      那么AOP的思想到底是什么呢, 面向切面编程,可以想象一下所有的不同的业务功能模块是在同一层次的东西,如果有一两块功能是大部分的业务功能所需要的,比如常见的日志,权限校验等等,这部分比较通用的功能就可以单独抽出来,放在业务功能的上面一层,就像一片沙拉上加了一层油醋汁,沙拉内容都不同,但是都需要油醋汁。

      如果没有这种思想,就像是每一个沙拉颗粒上都需要倒不同的(特有的)酱汁,那是不是很烦,不如一次性倒入一种你喜欢的(通用的)。

    • DynamicProxy 动态代理 
    • Reflection 反射

      动态代理和反射可以放到一起讲,反射,其实是指程序可以访问、检测和修改它本身状态或行为的一种能力。什么意思呢, C#是有分级的,程序集 -> 模块 -> 类型 -> 成员, 你可以用反射动态的创建一个实例,该实例继承了你需要反射的对象,你可以获取到对应的方法和属性。

      动态代理,这里的代理很好理解,就是代理对象的行为,类似我们需要访问对象时,需要先通过他的代理,再通过代理去访问对象。而动态代理就是通过动态的方式,即无需对象创建专门的代理,而是在IL中创建对应的代理,代码上来说可以批量化处理,更加干净。

      那么动态代理和反射的合作关系就出来了,动态代理在实现过程中需要用到反射的技术。

      动态代理中有一个点需要注意,如果动态代理时,需要给调用的方法添加额外的功能,比如访问权限(是的,也可以和AOP结合起来使用),则需要重写该方法,所以该方法必须是标记为虚方法才能够重写。

    • IOC 控制反转和DI 依赖注入

      控制反转和依赖注入其实是同一个概念,即将对象中依赖的对象的实例化这个过程的控制权,交给容器,或者说,一个对象所依赖的其他对象的实例,通过容器生成再注入到这个对象中。

      说白了就是对象所需要调用其他类,这个实例化其他类的动作,让容器来做,那么可以通过哪些方式注入呢,可以通过配置注入,也可以通过构造函数注入。

  • 相关阅读:
    大话计算机网络一 聊聊UDP
    Go调度器系列(2)宏观看调度器
    Go语言高阶:调度器系列(1)起源
    gin+go-micro+etcd实战一
    记录一次云主机部署openstack的血泪史
    paste deploy 学习笔记
    Openstack计算Nova组件
    jumpserver docker简单搭建
    [原创][开源] SunnyUI.Net 帮助文档目录
    [原创][开源]SunnyUI.Net, C# .Net WinForm开源控件库、工具类库、扩展类库、多页面开发框架
  • 原文地址:https://www.cnblogs.com/sylvialucy/p/12883183.html
Copyright © 2020-2023  润新知