第45条:将局部变量的作用域最小化

将局部变量的作用域最小化,可以增强个代码的可读性和可维护性,并降低出错的可能性。

方法:

1.在第一次使用它的地方声明。如果变量在使用之前声明,对于试图理解程序功能的读者来说,多了一个分散注意力的因素,等到用到该变量的时候,可能已经记不起变量的类型或者初始值了。

2.几乎每个局部变量的声明都应该包含一个初始化表达式。如果还没有足够的信息对一个变量进行有意义的初始化,就应该推迟这个声明,直到可以初始化为止。例外,try-catch语句,如果一个变量被一个方法初始化,而这个方法有可能抛出一个受检异常,该变量就必须在try块的内部被初始化,如果变量的值在try块外部被使用,它就必须在try块之前被声明。

循环提供机会将变量的作用域最小化,for循环允许声明循环变量,它们的作用域被限定在正好需要的范围之内。for循环优先于while循环。

3.使方法小而几种。如果两个操作合并到同一个方法,与另一个操作相关的局部变量就有可能会出现在执行另一个操作的代码范围之内。为了防止这种情况,把两个操作分到两个方法中,每个方法执行一个操作。

时间: 2024-10-27 10:19:15

第45条:将局部变量的作用域最小化的相关文章

第八章:通用程序设计。ITEM45:将局部变量的作用域最小化。

1.将局部变量的作用域最小化,可以增强代码的可读性和可维护性,并降低出错的可能性.在 C 语言中要求局部变量必须在一个代码块的开头处进行声明,出于习惯,有些开发者延续了这样的做法. 这个习惯需要改正,Java 提供了你在代码块的任何地方声明变量的语法支持. 2."要使局部变量的作用域最小化,最有力的实践就是在第一次使用它的地方声明".如果过早的声明,开发者就有可能在真正使用该变量的时候忘记了它的类型或者初始值了,而且也会带来代码块内变量名的名字污染问题,由此引发的 Bug,往往是令人极

11、将局部变量的作用域最小化

将局部变量的作用域最小化,可以增强代码的可读性和可维护性,并降低出错的可能性. 早期的程序设计语言要求局部变量必须在代码块的开头处声明,很多程序员保持这种习惯,但这是不好的.最好的方式就是在初次使用它的地方进行声明,否则等到运用的时候可能已经记不起这个变量名称,或者类型,这对于开发来说,或者阅读代码的人来说都是一件分散注意力的因素. 而如果在开头处声明,通常意味着它可以被应用到多个域当中,那你就可能在别的域中误用这个变量,尤其是在现今代码拷贝成习惯的开发日常,而从编译角度讲,代码是没有错误的,所

第四十五条:将局部变量的作用域最小化

将局部变量的作用域最小化,可以增强代码的可读性和可维护性,并降低出错的可能性. 要使局部变量的作用域最小化,最有力的方法就是在第一次使用它的地方声明. 如果过早的对变量进行声明,首先会造成混乱,对于试图理解程序功能的读者来说,这又多了一种只会分散他们注意力的因素.等到 用该变量的时候,读者可能已经记不起该变量的类型或者初始值了.其次,过早的声明局部变量不仅会使它的作用域过早的扩展,而且 结束得也过于晚了.局部变量的作用域从它被声明的点开始扩展,一直到外围块的结束处.如果变量是在"使用它的块&qu

为什么要将局部变量的作用域最小化?

嗨,本篇文章来说说 Java 的一个小细节:为什么要将局部变量的作用域最小化? 明人不说暗话啊.这篇文章的灵感来源于<Effective Java>,这本书我买了有好长好长一段时间了,书页都已经泛黄,烙下了时间的痕迹,但我仍然还没有把这本书读完.说来惭愧啊. 为什么呢?总感觉这本书的中文翻译有点拙劣,读起来烦闷枯燥.明明感觉作者说得非常有道理,但就是提不起半点兴致. (说完这句话,总觉得有点对不住这本书的译者,毕竟吐槽容易,分享难啊.) 为什么要说这些废话呢,因为怕大家觉得这是不值一提的细节,

Java之路(六) 局部变量作用域最小化

将局部变量的作用域最小化,可以增强代码的可读性和可维护性,并降低出错的可能性. 将局部变量的作用域最小化的方法有: 方法1:在第一次使用某个局部变量的地方进行声明. a.Java可以在任何可以出现语句的地方声明变量. 这条规则可以让我们在需要的地方声明变量,从而缩小作用域,如果没有这个前提,后面的一切都不成立了. b.过早的声明局部变量不仅会是它的作用域过早的扩展,而且结束的过于晚了. 要正确理解这句话.局部变量的作用域从它被声明的点开始扩展,一直到外围块的结束处.见下图: 如果变量是在“使用它

第13条:使类和成员的可访问性最小化

区别设计良好的模块和设计不好的模块,最重要的因素在于,这个模块对于外部的其他模块而言,是否隐藏其内部数据和其他实现细节.设计良好的模块会隐藏所有的实现细节,把它的API于它的实现清晰地隔离开来.然后,模块之间通过它们的API进行通信,一个模块不需要知道其他模块的内部工作情况,这个概念称为信息隐藏或封装.使类和成员的可访问性最小化可以有效的解除系统中各个模块的耦合度.实现每个模块的独立开发.使得系统更加的可维护,更加的健壮.对于顶层的(非嵌套的)类和接口,只有两种可能的访问级别,包级私有的和公有的

How Javascript works (Javascript工作原理) (十四) 解析,语法抽象树及最小化解析时间的 5 条小技巧

个人总结:读完这篇文章需要15分钟,文章介绍了抽象语法树与js引擎解析这些语法树的过程,提到了懒解析--即转换为AST的过程中不直接进入函数体解析,当这个函数体需要执行的时候才进行相应转换.(因为有的函数体只是声明了,并没有实际被调用) 解析,语法抽象树及最小化解析时间的 5 条小技巧 这是 JavaScript 工作原理的第十四章. 概述 我们都知道运行一大段 JavaScript 代码性能会变得很糟糕.代码不仅仅需要在网络中传输而且还需要解析,编译为字节码,最后运行.之前的文章讨论了诸如 J

《Effective Java 第二版》学习笔记 第13条 使类和成员的可访问性最小化

第四章 类和接口 第13条 使类和成员的可访问性最小化 1.设计良好的模块会隐藏所有的实现细节,把它的API与实现清晰的隔离开来,模块之间只通过它们的API进行通信,一个模块不需要知道其他模块的内部工作情况:即信息隐藏或封装,是软件设计的基本原则之一. 2.Java提供了许多机制来协助信息隐藏.访问控制(access control)机制决定了类.接口和成员的可访问性(accessibility). 3.第一规则:尽可能地使每个类或者成员不被外界访问.或者说在保证功能的情况下,使用最小的访问级别

JavaScript this 局部变量全局变量 作用域 作用域链 闭包

从阮老师博客的一道测试题说起: 代码段一: var name = "The Window"; var object = { name : "My Object", getNameFunc : function(){ return function(){ return this.name; }; } }; alert(object.getNameFunc()()); 代码段二: var name = "The Window"; var object