链接:https://www.jianshu.com/p/6565361f6845/
想象有一栋写字楼,写字楼里有10间公司,每间公司的业务各不相同,但可能都存在安保服务、后勤服务的需求。这些需求都不是业务关注点,但是公司业务的开展需要这些服务的支撑。如果你是公司的boss,你希望花很大精力在这些关注点上吗?还是只需要关注你的核心业务领域?写字楼提供了一种理想的组织模式,它把安保、后勤等服务从每间公司的需求清单上抽取出来,外包给其他组织,公司只需要在需要的时候,在它业务的某个点上使用这些服务就可以了。
代码中常常弥漫着这样一些关注点,这些关注点关心事务、安全等非业务特性,比如:一次数据库操作需要包裹在事务中;执行应用的某个操作之前需要检查是否具有权限。
对比写字楼模式,我们应该如何实现上述的关注点?(1)需要把这些关注点剥离出来,在单独的模块(oo中是class)中实现;(2)在需要这些关注点的位置,能自由的织入。
如何命名这些关注点?这些关注点是在你的业务主线上根据需要被织入的,所以“横切关注点”是一个很贴切的名称。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?