« 上一篇下一篇 »

基于对象与面向对象的区别

这样的话题常常被大家问起,下面我们就来了解一下基于对象与面向对象的区别吧!

基于对象,可能大家不是很熟悉,它是对数据类型的抽象封装一个结构包含了数据和函数,然后对象为目标进行操作,而面向对象相信大家了就比较了解了。它首先指根据客户需求抽象出业务对象;然后对需求进行合理分层,构建相对独立的业务模块;之后设计业务逻辑,利用多态、继承、封装、抽象的编程思想,实现业务需求;最后通过整合各模块,达到高内聚、低耦合的效果,从而满足客户要求。

基于对象与面向对象,其核心的差别是对于继承的支持。例如:VB和JavaScript是基于对象语言;而C#或者C++是面向语言,提供了对继承的原生态支持。

举个例子来说,我们认为C#是面向对象的语言,而JavaScript则是基于对象的语言。在C#中封装、继承和多态构成了面想对象丰富体验的理论基础;而JavaScript中虽然只有简单的几种基本类型,但是对象这一基本概念还是成就了JavaScript的无限灵活性。然而,JavaScript却不是纯粹的面向对象语言,它可以以对象进行操作,但它没有继承和多台带来的面向对象体验。所以面向对象和基于对象的分水岭就定格于此了。

关于OO的核心和抽象可以从广义和狭义两方面来说,广义就是“面向抽象,封装变化”这一基本思想,而狭义则是多态。

那么什么是抽象?它代表了软件系统中相对稳定的东西,依赖于稳定的因素可以使得整个系统的耦合度降低,因为稳定就是不变或者不易变。所以架构在永恒之上的东西,就是软件设计理想的交互作用,但由于这种理想无法在现实中存在,搜易只能无限地接近,而被接近地东西就是:抽象。

总结起来就是,面向对象与基于对象,二者的概念主要体现在:

1.继承是区别面向对象的核心所在,对于少了继承性的基于对象来说,自然少了多态性的支持。

2.封装是面向对象与基于对象的共同特征。

« 上一篇下一篇 »