过程、对象、切面

首先了解一个关键词Soc。
Soc:Separation of concerns 关注分离点, 在不一样的场景SOC有着不一样的含义
  • Soc是一个过程:Soc是一个将功能点分解以尽可能减少功能交叉的过程;
  • Soc是软件开发的一个基本规则
  • Soc是一个指标:关注点的分离度
Soc的实践体如今不一样的编程模型(Programming paradigm),编程模型帮助开发者提升关注点分离度,过程化编程模型把关注点分解成多个过程。
面向对象编程中,关注点抽象为对象/类。面向方面编程模型中,将关注点分解为多个“方面”。
 

 

(重点说明一下AOP)
 
AOP Aspect Oriented Programming 面向切面编程。经过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。
 
AOP是OOP的延续。利用AOP能够对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度下降,提升程序的可复用性,同时提升开发的效率。
 
主要功能:日志记录,性能统计,安全控制,事务处理,异常处理等等。
 
主要意图:将日志记录,性能统计,安全控制,事务处理,异常处理等等代码从业务逻辑代码中划分出来,经过对这些行为的分离,能够将它们独立到非主导业务逻辑的方法中,进而改变这些行为的时候不影响业务逻辑的代码。
 
做用:   面向对象编程OOP是关注将需求功能划分为不一样的而且相对独立,封装良好的类,并让它们有着属于本身的行为,依靠继承和多态等来定义 彼此的关系的话;
            面向切面编程AOP则是但愿可以将通用需求功能从不相关的类当中分享出来,可以使得不少类共享一个行为,一旦发生变化,没必要修改不少类,而只须要修改这个行为便可;
 
动态横切:它是经过切入点(point cut)和连接点(joint point)建立行为的过程;
静态横切:是经过在不修改原有职责的基础上增长新的职责;以往咱们用过类的继承来实现,但继承是种强依赖关系,不使用它,咱们使用静态横切,就是脱离继承关系,使用其余手段将它们关联起来。
在Asp.Net MVC中经常使用到的动态切面(横切)技术是Filter(Attribute)过滤器。
相关文章
相关标签/搜索