回顾软件技术的演进过程,实际上是一个不断将逻辑从机器语言抽象成人类语言的过程,从机器码、汇编到面向过程语言、面向对象语言,人们不断做着广义上同样的“抽象”工作,从而使得他们所编写的程序更加与机器无关、更加接近人的思维方式,虽然这一过程有着客观存在的反复,但是它的方向是明确的。因为这是由软件(其实是客观世界)的复杂性不断增加决定的,这种趋势驱动着人们不断的简化——或者说使其更人性化——他们的编程模型,于是才有了以上描述的软件技术的演进过程。
而这种演进的过程中,AOP非常自然的出现了,它给了OOP一个很好的手段,可以将对象中一些通用的、但却无法从OO设计上抽象出来的部分,通过一种对象切入的方式干净的“抽象”了出来,令对象变得更加纯粹,令人耳目一新,下面的几张图很好的演示了这一令人兴奋的过程。
而这种演进的过程中,AOP非常自然的出现了,它给了OOP一个很好的手段,可以将对象中一些通用的、但却无法从OO设计上抽象出来的部分,通过一种对象切入的方式干净的“抽象”了出来,令对象变得更加纯粹,令人耳目一新,下面的几张图很好的演示了这一令人兴奋的过程。
有人说AOP是对OOP的很好的补充,我非常支持这一说法;也有人说它是继OOP后下一代的编程模型,我却不敢苟同。