博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
过程、对象、切面
阅读量:5948 次
发布时间:2019-06-19

本文共 947 字,大约阅读时间需要 3 分钟。

首先了解一个关键词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)过滤器。

 

转载于:https://www.cnblogs.com/sheldon-blog/p/8158898.html

你可能感兴趣的文章
if 的使用方式
查看>>
SSL 设置域名访问
查看>>
P2P网络借贷系统简要解读
查看>>
Spring Cloud微服务架构介绍(完善中)
查看>>
Kubernetes HPA Controller工作原理
查看>>
Iframe网页内部的导航窗口
查看>>
SCOM
查看>>
PERL删除数组元素的多种方法
查看>>
IOS 6已经可以使用个人热点了!
查看>>
Js的常见函数
查看>>
电脑能上网,但是打开“网上邻居”却找不到“本地连接”
查看>>
Qt开发的UDP发送端
查看>>
什么是面向对象程序设计
查看>>
p:pickList验证失败后无法填充数据
查看>>
python grpc 应用
查看>>
我的友情链接
查看>>
CentOs 7.4 安装git
查看>>
jsonObject 方法putAll 的使用
查看>>
四、mysql 查询
查看>>
Win7+CentOS 6.9双系统安装教程
查看>>