不管是面向什么编程,它们都是解决一个问题——“如何组织代码”
面向过程(POP)
if、for、函数,代码从上往下执行
面向对象(OOP)
类,封装、继承、多态,继承组织代码的方式就是把几个通用的,具有公共行为的代码抽象到父类,然后子类继承父类,避免了每个类都写同样的代码,通用的代码放到父类里面,个性化的代码由子类来写。所有用面向对象可以实现的,都可以用面向过程来实现,只不过麻烦而已;面向对象不是替代面向过程的,比如一个函数,内部怎么写还是面向过程的。
面向切面(AOP)
是一种思想、理念。用于把公共的逻辑放在一个单独的地方,这样就不用每个地方写重复的代码了。比如程序中发生异常,不用每个地方都写try...catch,只要在Global的Application_Error中统一进行异常处理。不用每个Action中都检查当前用户是否有执行权限,Asp.Net MVC中提供了一种机制,每个Action执行之前都会执行我们的代码,这样统一检查即可。
一夫当关万夫莫开。