转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6586081.html
一:面向过程编程
以过程为中心的编程思想,以什么正在发生为主要目标进行编程。如:喝酒事件的编程:需要拿开瓶器,就编程实现拿开瓶器;需要打开瓶盖,就编程打开瓶盖......需要做什么就编程什么。
面向过程编程的最大缺点在于代码复用性差——在另一个程序文件中需要实现相同功能时需要再次编写该函数。
二:面向对象编程
把事物对象化,一个对象包含属性和行为。面向对象的最主要特征是:封装,继承和多态。封装把数据和函数结合在一起,形成了一个整体的对象;继承在原来对象的基础上,进行功能的扩展;多态可以应对需求的变化,统一的接口,可以有不同的实现。
面向对象解决了代码复用问题,可以避免重复编写相同功能的代码——要用什么函数,导入它所属的类即可。
面向对象的五大设计原则:solid(立方体),很好记!!!
三:面向接口(抽象)编程
通过接口规范了对象的属性和方法,是面向对象一部分。在面向对象编程时,所有的类或者模块之间的交互是由接口完成的。一个对象实例只能赋值给与它类型相同的引用、或者父类(包括接口)的引用。
面向接口编程统一了操作规范,降低模块间的耦合度。
四:面向切面(方面)编程
AOP主要实现的目的是针对业务处理过程中的切面进行提取加工,它所面对的是类的某个处理函数或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。AOP的编程,就是类的某个方面的功能提出来与对象进行隔离,这样与对象之间降低了耦合性,可以就该方面进行编程。
例如:车站售票点这个类封装有 售票 这个功能函数。现在,要求售票人员提高服务质量,在售票前对客户问好,售票后欢送客户。
如果采取修改原有类中的代码,添加问号、欢送功能,就违背了 开—闭 原则。并且,如果该类被其他类组合使用的话,还有修改组合它的相应类代码去调用新增函数。
这时,我们可以采用面向方面编程——把 售票 这个切面提取出来,在与原对象隔离的环境(即在一个新的类)下进行加工。使得用户在调用 售票 功能时,运行的是加工后的结果。那么AOP如何实现呢——使用动态代理。