结构化与面向对象的区别是什么?

如题所述

结构化程序设计与面向对象主要的区别在于设计思维上不同,另外封装性上结构化编程比较难于封装,复用性上也不如面向对象编程。

1、设计思维。

面向过程程序设计方法的实质上是从计算机处理问题的观点来进行程序设计工作:“输入——运算——输出”。

面向过程程序设计者需要变更习惯的思维方法以贴近计算机的内部工作机理。面向过程程序设计所具有的流的工作性质,试图通过信息流及其转换来认识系统,不仅加大了程序设计的难度,同时亦使得程序的可理解性比较差。

面向对象在分析问题时,以对象为单位,考虑它的属性及方法,与传统的面向过程是完全不同的,面向过程在分析问题时,以一个具体的流程(事务过程)为单位,考虑它的实现。

当每次把各种设计模式回归到面向对象思想时,我都有一种“运用之妙,存乎一心”的感觉。如果能更多的更深层次的去思考面向对象思想,对于学习设计模式将会大有裨益。

2、封装性

结构化编程封装难度较大,因为其采用结构化程序分析设计程序时,开发者需要将客观世界模型分解一个一个功能,每个功能按照顺序用以完成一定的数据处理。 对于私有的方法,较难控制,敏感信息就比较难隐藏。

面向对象编程的封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。

3、复用性

传统的结构化程序设计方法以过程为中心构造应用程序,数据和处理数据的过程代码是分离的、相互独立的实体,设计出的程序可重用代码少,且当代码量增加时维护数据和代码的一致性困难

面向对象程序设计方法中,对象所具有的封装性和继承性使得代码重用成为可能,并大大减少了程序出错的可能性。

参考资料来源:百度百科——结构化程序设计 

参考资料来源:百度百科——面向对象程序设计

温馨提示:答案为网友推荐,仅供参考
相似回答