面向过程(POP)、面向对象(OOP)、面向接口(IOP)、面向切面(AOP)

面向过程:典型的是C/C++的结构体,结构体里只有变量,没有处理变量的方法,需要专门编写处理变量的方法。

面向对象:ArrayList<Integer> list=new ArrayList<Integer>();坏处是如果改为LinkedList,所有代码可能需要重写,同时扩展一个新的List的话,需要重新调用。

面向接口:List<Integer>=new Arraylist<Integer>();是面向对象的一种形式,广义上讲,抽象类也是接口的一种形式,使用该类的某种属性(接口)来表示,降低耦合性,增加代码复用性。

面向切面:这种在运行时,动态地将代码切入到类的指定方法、指定位置上的编程思想就是面向切面的编程。

面向切面的理解参考:https://www.zhihu.com/question/24863332