面向对象

编程思想

对于做人我们都有自己的想法和做法,想做个怎样的人,怎么做,用什么标准和原则来要求自己都是我们时常思考的问题。
编程也有编程的原则。这些编程的原则呢,就是编程思想。简单来说编程思想就是用计算机来解决人们实际问题的思维方式。
主要编程思想:
OPP:Process Oriented Programming 面向过程编程
OOP:Object Oriented Programming 面向对象编程
SOA:Service-Oriented Architecture 面向服务架构
AOP:Aspect Oriented Programming 面向切面编程

面向对象

思想:以对象为中心的编程思想(事物对象化),一切皆对象(万物皆对象)。
流程:先寻找对象,分析数据和行为,给对象进行分类,在类中把解决问题的思路/流程封装成一个个方法,需要使用时创建该类的对象,让对象调用方法来完成解决问题的行为。
优点:更符合人解决问题思路,数据和处理被封装在一个整体中。
缺点:寻找对象,分析对象需要经验,面向对象的特性不太好理解。

面向过程

思想:以事件为中心的编程思想(模块化思想),关注整体的流程。
流程:就是分析出解决问题需要的步骤/流程,然后用函数将之一一实现,使用的时候直接调用即可。
优点:简单,符合计算机处理思路。
缺点:数据和处理是分离,解题思路和现实有区别。

区别与联系

  • 区别
    面向过程适合处理简单的事情,直接关注流程,简单有效。
    面向对象适合处理复杂的事情,先使用面向对象的方式对整体关系作出分类,然后,根据不同的类深入细节的处理。
  • 联系
    面向对象无法取代面向过程,他们是相辅相成的。面向对象关注于从宏观上把握事物之间的关系,在具体到如何实现某个细节时,仍然采用面向过程的思维方式。面向对象如果离开了面向过程,就无法实现真正的落地,成为无源之水。

面向服务架构

思想:面向服务以服务为出发点,组织和协调相关的对象来提供目标服务,对外提供必要的参数输入接口,将服务的结果作为输出,而“服务”本身的计算过程和组织则被封装在一起,对用户透明。
具体描述:
其实面向服务也是以功能(服务)为中心,但其强调的是功能的整体性,封装性、自包性,而不是过程性和协作性。
整体性:指的是服务对外是作为一整体来体现的。
封装性:指的是服务完成的计算和处理过程、自有属性都不直接暴露给外部,除了通过公共的服务接口进行交互外,用户无法也不用知道内部的具体组织和协调的。
自包性:指的是服务的完成不依赖于服务的调用方,服务系统的本身就可以完成服务所需的功能。
因此面向服务在程序组织上处于更高的层次,是一种粗粒度的组织方法。考虑的是系统间的组织和管理。

面向切面

属于面向对象的范畴,面向对象组织对象从纵向角度采用分类归纳法实现的,关注的是整体对象的继承关系。而面向切面则从横向的角度去观察这些对象,找到公共的切入点,添加切面行为来处理一些通用的问题。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容