有一个时期,代码复用,用的是跳转,也就是goto,坏处很多,最明显的是

  1. 不容易流程控制.
  2. 项目稍微大些,重用难以设计并且代码可读性变差.
  3. 大项目的难度以指数形式增长.

首先,goto带来的流程不便利是当时最突出的问题,之后的结构化编程诞生则是一种不错的解决办法.

结构化编程:我们有三种代码结构。1.顺序  2.条件 3.循环

结构化编程解决了流程的控制问题,复杂流程的设计和简单数据类型失去了原来的平衡,即便引入了结构体,数据种类的繁多和逻辑的复杂度也让编程难以为继,这里我们应该看到,现在的复杂度已经和goto时期的不一个层次了。是更深远一层的生产关系制约生产力的发展了.

SmallTalk 是第一个尝试把逻辑和数据关联起来的语言,这就是最初的面向对象。从上我们可以看出,数据和逻辑的关联是结构化编程的一种扩展,原初的目的是去解决复杂逻辑对简单数据的失衡。现在让数据变的“智能”化,这样的思路生产并发展了构建复杂系统的最小单元。基于这种特性,这种设计更好的易于描述现实的对象,但并不是说,一切都是对象是我们出发点和动力源,这句话虽然没错,可不会对一个程序员带来多少"正能量“.

The very initial purpose of OO相关推荐

  1. 星期四定律。散分!_星期四

    星期四定律.散分! Zeldman writes about the last few days. My list of people I'm keeping in my prayers grows ...

  2. 【ABAP妙用】复制ALV之负号提前

    场景: 用户一般Ctrl+C复制ALV数据到Excel处理,如果有负数的数值,负号在数值的后面,Excel不认识,要费劲巴拉的一个个改正,苦不堪言! 本程序功能: 在ALV复制数据后,直接更改剪贴板里 ...

  3. python缓冲区_如何在Python中使用Google的协议缓冲区

    python缓冲区 When people who speak different languages get together and talk, they try to use a languag ...

  4. 分页 pti_计算pti的历史

    分页 pti We learn and know (hopefully) a basic history of the world, particularly major events like th ...

  5. 【八数码问题】基于状态空间法的知识表示与状态搜索:无信息搜索(BFS/DFS) 启发式搜索(A*)

    前言 一.问题引入 二.状态空间法 1. 知识及其表示 2. 状态空间法定义 3. 问题求解 三.基于状态空间搜索法解决八数码问题 1. 八数码问题的知识表示 2. 状态空间图搜索 1. 无信息搜索 ...

  6. 转 ABAP_ALV_Function方式与OO方式(较为简单、普通的ALV)

    ABAP_ALV_Function方式与OO方式(较为简单.普通的ALV) 分类: SAP ABAP2013-01-31 09:58 1511人阅读 评论(0) 收藏 举报 目录 一.ALV简介 1. ...

  7. ABAP_ALV_Function方式与OO方式(较为简单、普通的ALV)

    目录 一.ALV简介 1.简介 2.ALV_GRID介绍 3.其它描述 二.开发ALV的基本流程 三.ALV相关开发细节 1.标准ALV与对象ALV的共同开发细节 2.标准ALV开发相关细节 3.对象 ...

  8. OO ALV简单报表之DOCKING容器实现

    OO ALV报表实现 后面再说其他的 由简入繁助于理解 下面介绍一下OO ALV的灵魂 两个类(SE24查看): CL_GUI_ALV_GRID CL_GUI_DOCKING_CONTAINER 介绍 ...

  9. ABAP ALV OO 自定义Toolbar 和Command及listmenu按钮

    ALV OO 自定义Toolbar 和Command及listmenu按钮 前言 OOALV容器 OOALV 工具栏 1.定义OO 对象及字段 2.OO ALV FIELDCAT 字段定义 3.定义类 ...

最新文章

  1. ps 2c语言程序,C语言基础(二)
  2. OpenGL Draw TransformFeedback 绘制变换反馈的实例
  3. 手写ORM入门篇(一)
  4. Nginx的http块自定义服务日志
  5. # 遍历结构体_C#学习笔记05--枚举/结构体
  6. php 数据相加,PHP数组合并之array_merge和数组相加
  7. mysql elt interval_mysql 区间分组 interval,elt 的运用
  8. 告别软驱,Win2K3光盘中集成Raid驱动程序
  9. Apache Kylin在美团数十亿数据OLAP场景下的实践
  10. [转]Linux下用gcc/g++生成静态库和动态库(Z)
  11. Map集合的4种遍历方式
  12. QT5基础教程(介绍,下载,安装,第一个QT程序)
  13. Win10 微软拼音添加小鹤双拼以及其他配置
  14. 学妹问我: 如何提高编程能力
  15. C#--解析DataMatrix二维码
  16. 深度学习 Day 8——解决GIF生成错误以及有关GAN过程问题
  17. pnpm install出现:ERR_PNPM_PEER_DEP_ISSUES Unmet peer dependencies
  18. 如何在linux系统中安装虚拟机?
  19. 美团外卖红包,商超生鲜红包,饿了么红包天天领,果蔬抢特价,大额满减券,返利优惠券源代码
  20. flash 外国小游戏教程网站

热门文章

  1. html常见盒子居中小结
  2. make问题:make[1] entering directory
  3. 文件的打开和关闭,fopen()和fclose
  4. 北京市地面数字电视节目表
  5. 第二节-Javascript和jQuery笔记
  6. ZCash的零知识证明
  7. maven打瘦包,且只打入部分想打入的依赖瘦包
  8. 你必须理解的三大软件原则1_DRY
  9. finereport 简单使用
  10. 「企业安全架构」EA874:信息安全架构