变量 (代码大全 第十章)

10.1 作用域

尽可能减小作用域如果能将变量的作用域限制在一个子程序之内的话,那是再好不过的了


把对某一变量的引用集中放置



10.2持久性


“持久性”指的是某一数据的使用寿命


在程序中加入调试代码来检查变量的值是否合理


在写代码时假定变量已经失效


养成在恰好使用某一变量之前对其进行初始化的习惯



10.3 赋值时间


应该尽可能地晚一些将它们联系在一起。通常,越是晚一些给变量赋值,代码的灵活性便越大



10.4 数据结构与控制结构的关系


程序中顺序性数据可以转化为顺序性语句


程序中的选择性数据可以转换为 if case语句


程序中的重复性数据可以转化为 forrepeat while循环结构



10.5变量功能单一性

应使每一个变量只具有一个功能


避免使用具有隐含意义的变量


保证所有说明的变量




10.6 全局变量

即使使用全局变量是没有危险的,使用它也决非最好的编程方法


10.6.1 伴随全局变量的常见问题

对全局数据的疏忽改变

伴随全局变量的奇怪的别名问题

有全局数据的代码重入问题

全局数据妨碍重新使用的代码。

全局变量会损害模块性和可管理性



10.6.2 使用全局数据的理由

保存全局数值,有时候需要在整个程序中都要用到某些数据

代替命名常量

方便常用数据的使用

消除“穿梭”数据。



10.6.3 怎样降低使用全局数据的危险

先使所有变量都成为局部的,然后再根据需要把其中某一些改为全局变量

区分全局和模块变量

建立使你一眼即可识别出全局变量的命名约定

建立一个清楚标出所有全局变量的注释表

使用加锁技术来控制对全局变量的存取

加锁技术在开发阶段是有用的

不要通过把数据放人庞大的变量,同时又到处传递它来掩盖你使用了全局变量的事实


10.6.4 用存取子程序来代替全局数据

用全局数据能作的一切,都可以通过使用存取子程序来做得更好,存取子程序是建立在抽象数据类型和信息隐蔽的基础上的


存取子程序的优点:

可以对数据进行集中控制

可以把所有对数据的引用分隔开来

你可以自动获得信息隐蔽带来的好处

存取子程序很容易转换为抽象数据类型


怎样使用存取子程序:

要求所有子程序来对数据进行存取操作

不要把所有的全局数据都放入同一个模块中

在存取子程序中建立某种程度的抽象

把对数据的所有存取保持在同一抽象水平上

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值