全部博文(2065)
分类: Java
2009-12-10 09:36:32
一、 工具库的一个简单例子。
记得笔者刚开始建立工具库的时候,是从一个输出语句开始的。有时候Java程序开发人员需要在程序代码中加入输出语句。如出于调试的需要临时增 加输出语句,用来判断运算结果的准确性;如有时为了加强同用户的互动性,在用户输入参数之前需要向屏幕中输出一些提示性的语句等等。而要实现这个目的的 话,在JAVA程序中是通过print方法或者println方法实现的。两者的差异主要在于是否要换行。但是在Java程序中调用这两个方法的话,前面 要加一大堆的前缀。如调用这个两个方法,要把下面的代码写全,即为System.out.print();以及 System.out.println()。显然为了输出一串信息,要收入这么长的代码,在输入的时候工作量比较大。而且需要注意的是,这里的 System单词中S必须大写。对于一些刚接触Java程序的新手来说,刚开始往往把S写成了小写的s,结果就出现了语法错误。特别是在一个JAVA代码 中,需要频繁的用到这个方法。为此使用起来比较不方便。那么有没有更加简单的方法呢?其实Java程序开发人员完全可以把这些方法加入到自己的工具库中, 来简化输入的方法。而且还不用担心会因为重名而导致的冲突。如大家可以安装如下的方式来将这个方法定义到自己的工具库中。
package com.abc.tool;
public class PR{
public static void pln(String s){
System.out.println(s);
}
pulic static void p(String s){
System.out.print(s);
}
}
如此定义之后,下次在需要向屏幕中输出内容的时候,只需要按如下的方法来调用即可,如PR.pln()或者PR.p()即可。两者的差异就在于 是否需要换行打印。这比直接调用原先的输出命令要简单的多。这只是一个最简单的例子。其实Java程序员还可以丰富这个屏幕输出命令。如可以在输出提示信 息之前,加入“******”类似的移行内容,以表示强调或者格式化输出的内容。这些都可以在这个工具中定义好。如此的话,下次需要实现这个需求的时候, 可以直接拿来使用。而不需要再写多个代码来实现。
二、 定义工具库要选择一个好的工具库名字。
像上面这样定义Java程序人员自己工具库的时候,需要取一个好的工具库名字。其实取这个工具库名字的时候,可能比取人的名字更要有讲究。为什 么这么说呢?因为当你出名的时候,这个工具库可能不仅仅是你自己在用,有可能项目团队中别的程序开发人员也会使用你的工具库。特别是当你作为项目团队负责 人的时候,这种情况就很常见了。你必须无私的把这个工具库共享出来,以提高程序的开发效率。同时也可以增加你的威信。这对于你作项目负责人的这个角色很有 帮助。所以这个工具库名字命名的时候,就很有讲究。具体来说,最好能够做到如下几点。
首先,最好Java程序开发人员在制作这个工具库之前,能先花点小钱去申请一个域名。这主要是为了保证你工具库库名字的唯一性。因为有时候在开 发的时候,你的工具库可能别人在使用;而你也可能会使用别人开发的工具库。但是,很有可能在这个过程中会因为重名而导致冲突。而花点小钱去申请一个域名, 然后利用这个域名来对这个工具库进行命名,显然能够保证工具库名字的唯一。如上面这个例子中,笔者采用的就是域名(反过来写)+tool作为工具库的名 字。由于域名是唯一的,所以后面加上一个tool也是唯一的。如果大家都能够遵守这个规则的话,就不会导致命名的冲突。而且,这个命名方法还可以顺便用来 宣传自己。如果大家觉得你的工具包不错,就会根据工具包的名字,找到你的网站。这就好像是在发邮件的时候采用签名一样,是一种宣传自己的很好工具。
其次,需要注意一个书写的规范。在定义工具包名前面有一个关键字package,注意通常情况下这个关键字要小写,这是一个强制性的规定。另 外,工具包的名字也最好小写。虽然采用大写的名字,也不违反语法约束,可以正常编译。但是最好还是采用小写。因为这个就好像是一个行业的规范。虽然没有法 律性的约束力,而主要是一种道德上的约束力。Java程序人员要融入这个大圈子,这些行业性的约束也要遵守。不然的话,人家会排斥你,甚至会把你当作菜鸟 看。为此笔者再强调一次,在定义工具名字的时候,包括关键字、域名、具体名字,都必须要小写。
第三,在后续的工作中,Java程序开发人员可以不断的完善这个工具库。如以后Java程序人员开发了一个从特定服务器中获取系统时间的工具。 其实,这个工具很有用。如在ERP系统中,要确保个个客户端的时间与服务器的时间同步,否则的话,一些客户端上做的一些计划性任务可能无法正常执行。为 此,就需要客户端使用的是服务器端上的系统时间,而不是客户端上的系统时间。因为除非客户端上的系统时间也是跟某台时间服务器同步,否则的话无法保证各个 客户端的时间一直。而现在利用这个工具,去获取ERP服务器端的系统时间,就可以保证各个客户端时间的一致性。即使ERP服务器端的时间有错误,也不影响 后续的作业。因为各个客户端的时间跟服务器是同步的。既然这个工具这么重要,而且需要频繁的使用,那么当然有必要将其加入到自己的工具库中了。此 时,Java程序开发人员只需要在源代码文件的开头,加入package com.abc.tool即可。在编译的时候,解释其看到这个包名的定义,如果系统中已经有这个工具包,就会直接将这个工具加入到现有的工具包中。如果没 有这个工具包的话,则会新建一个工具包。所以Java程序开发人员不需要一次性建立好工具包,而是可以在后续的工作中日益的完善。
三、 取一个简单而容易理解的方法名。
如果按照上面的方法建立了一个工具包之后,如果Java程序员需要调用这个工具包中的方法,该怎么进行呢?其实跟调用其它的系统方法一样。首 先,需要在源代码的开头位置,使用import关键字将这个工具包“导入”到当前的文件中。然后可以采用类名+方法名的方式来进行饮用。如上面这个例子, 程序开发人员就可以直接使用PR.P来调用系统的print方法。而原先的话,则需要使用System.out.print(s)命令。显然采用自己定义 的工具包,可以在很大程度上简化输入。
那么这个简化输入的效果到底有多大呢?这主要还是跟程序开发人员的命名习惯有关。如果程序开发人员能够取一个简单而容易理解的类名与方法名的 话,那么简化输入的效果就会很明显。如上面就采用几个简单的字母就可以完成。相反,如果取的名字比较长的话,那么命令输入起来仍然会很麻烦。其次就是这个 名字要容易理解。如果都是采用没有具体含义的字母,那么当工具包中类或者方法一多的话,可能就连程序开发人员自己都不知道这个工具的用途了。所以,在给类 或者方法命名的时候,要简单而且容易记忆,如可以使用原有方法的简写等等。另外需要注意的是,在建立自己工具包的时候,最好能够最一份详细的说明书。因为 以后你若做项目管理员的时候,可能你手下的成员需要用到你的工具包。此时这份说明书对他们来说就是最好的资料了。
总之,自定义工具包是程序开发人员提高开发效率的一个很好的帮手,也是Java应用程序的特性之一。希望各位同行能够好好利用这个工具,来提高自己的能力。同时也要学会使用他人开发的工具包,这也是迅速提高自己开发能力的一个捷径。