面向对象的理念擅长于将系统分解成组件来描述流程,也擅长于处理组件的关注点。不过对于那些横切的关注点,面向对象理念却不在行。
横切关注点是指那些将会影响到系统中多个组件的关注点。
面向方面编程AOP。
AOP的主要目的是将横切关注点于核心关注点的实现拆分开。
在AOP中,我们可以将某个横切关注点封装到一个新的组件中,该组件就叫做一个方面。方面就是一个可重用的组件,其中封装了项目中多个类型需要使用的同一个行为。
一个方面就是一段标准、可重用的代码片段,可用来在不影响现有类型源代码的情况下注入到其中。
连接点、切入点、通知。
微软Enterprise Library 3.0中的Policy Injection Application Block(PLAB)。