Aspect Oriented Programming(面向方面编程,简称AOP)是一种Declarative Programming(声明式编程)。Declarative Programming(声明式编程)是和Imperative Programming(命令式编程)相对的概念。我们平时使用的编程语言,比如C++、Java、Ruby、Python等,都属于Imperative Programming(命令式编程)。Imperative Programming(命令式编程)的意思是,程序员需要一步步写清楚程序需要如何做什么(How to do What)。Declarative Programming(声明式编程)的意思是,程序员不需要一步步告诉程序如何做,只需要告诉程序在哪些地方做什么(Where to do What)。比起Imperative Programming(命令式编程)来,Declarative Programming(声明式编程)是在一个更高的层次上编程。Declarative Programming编程语言是更高级的语言。Declarative Programming通常处理一些总结性、总览性的工作,不适合做顺序相关的细节相关的底层工作。
如果说Imperative Programming是拼杀在第一线的基层工作人员,Declarative Programming就是总设计师、规则制定者。Declarative Programming Language的概念,和Domain Specific Language(领域专用语言,简称DSL)的概念有相通之处。DSL主要是指一些对应专门领域的高层编程语言,和通用编程语言的概念相对。DSL对应的专门领域(Domain)一般比较狭窄,或者对应于某个行业,或者对应于某一类具体应用程序,比如数据库等。
- 命令式编程:命令“机器”如何去做事情(how),这样不管你想要的是什么(what),它都会按照你的命令实现。
- 声明式编程:告诉“机器”你想要的是什么(what),让机器想出如何去做(how)。
http://blog.csdn.net/asdfsadfasdfsa/article/details/52777532