结构化编程和面向对象编程的意义

2022-01-11  本文已影响0人  杰_6343

如果现在只能用汇编和 Goto 编程

写代码也不讲什么规则,可以随意使用灵活而又强大的 Goto,写出只有自己能懂的代码。

1968年,“北约软件工程大会”

会议指出:软件的复杂度已经变得人脑无法掌控,我们已经处于严重的软件危机当中!

会议强调:软件的生产有必要建立在某些理论基础和实践指导之上!

会议要求:各单位要切实加强对其他学科的学习,实施软件软件工程的办法,努力提高程序设计的效率和质量。

因此废除goto,使用结构化编程作为理论基础和实践指导的重要意义

无论是什么程序,不管多么复杂,都可以用三种基本的结构来表达:顺序,分支,循环。

程序设计以提高效率和质量

自顶向下分析问题

模块化设计

高内聚、低耦合

瀑布式开发方法

随着程序越来越复杂,结构化编程的两个致命问题逐渐暴露:

1. 维护全局变量变成噩梦

子程序(函数)虽然封装了相同的代码逻辑,成为黑盒子,但是多个子程序(函数)需要共享信息的时候,就需要全局变量,全局变量一旦变多,维护就变成噩梦。

2. 子程序(函数)的复用性太差

希望在运行时能动态的替换成用户自己的东西(没错,这其实就是一个框架了!) ,这时结构化编程就有点儿着急了。

随着结构化编程缺陷的暴露,人们发现 Simula 67 这门语言的特征——支持类,还支持继承,多态这些新鲜的概念,正好可以解决上面的两个问题:

1. 类可以把函数和成员变量组织在一起,消除全局变量

2. 通过多态,可以实现对主程序的复用

主程序只调用接口或者缺省类,使用者提供实现类,两者结合起来,完成业务功能。

大神程序员可以集中精力搞定那些最基础,最重要的东西,创建出通用的框架和类库让程序员使用。我等普通人只需要专注业务逻辑即可, 又可以快乐地搬砖了!

使用面向对象的技术,代码的复用层级从简单的函数进化到类和框架,不仅如此,还有些程序员从框架和类库中抽取出了可以重用的思想:模式。

面向对象技术从60年代的 Simula 67 起源,70年代出现了 Smalltalk,80 年代出现了 C++, 到了90年代,Java 横空出世,面向对象编程终于成为主流。

上一篇下一篇

猜你喜欢

热点阅读