面向对象编程有哪些好处?

JavaScript011

面向对象编程有哪些好处?,第1张

据我的理解,试描述一下:

最大的好处应该是让程序更容易维护,增加了代码的重复利用效率。

面向对象是一种思维方法,这种设计方法是现实世界我们思考和认识的特点,将代码世界里具有相关联性的数据和对数据的操作放在一起,作为一个相互依存,不可分割的整体来处理。先考虑整体、共性的东西,再考虑个性、个别的东西,有利于问题的简单化。

比如,车是一个共性的概念,在车的共性基础上,派生出像自行车、汽车、火车等等。

面向对象最重要的功能,是在语言层面,做出一些归类和划分。这给出了额外信息,有助于提高程序的可维护性,和可控。也就是说,传达出,数据之间,函数之间,数据和函数之间的疏密和逻辑关系。通过对复杂任务,化整为零,实现分工协作和任务简化,这类似分治法。同时,在编程模型中建立了对象的概念,通常更加切合人类的思考习惯,通过合理的封装,设计良好的对象接口,从而帮助人们更容易开发和管控自己的代码。关于楼主提问,我补充下,OO 的选择 和 GUI 是完全独立无关的。GUI 也可以以面向过程的方式开发。在适合 OO 的各种场合(不一定是 GUI),采用 OO 来编程当然也是十分有益的。然后面向对象的使用,人们很容易僵化,要谨防:(1)过度OO。不必要的加深对象关系网络深度,会降低程序的可维护性和可控性,最终失控而导致项目失败。(2)一些人对面向过程才去完全对立,这是一种教条主义和僵硬呆板的理解。实际上绝对的 OO,必然不是最正确的。不管强行 OO 只能是弄巧成拙的愚蠢人。意识不到,OO 并不是适用所有模型,或者说,很多场合,没有必要 OO和没有 OO 的特别收益。实际情况,一般是 OO 和 面向过程两者的合理结合组合,来解决问题。而不是非此即彼的关系。