免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1623 | 回复: 0
打印 上一主题 下一主题

Java中如何定义工具库 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-10 09:36 |只看该作者 |倒序浏览
一个有经验的Java程序人员往往会把一些常用的语句定义成一种工具,然后把其放在自己的工具库中。不知道大家有没有这么操作的习惯,反正笔者的工
具库中,已经有上百个工具了。凭借这这些工具,给笔者开发Java应用程序提供了很大的方便。即可以不用担心重名导致的冲突,而且还可以简化输入,一举两
得。为此笔者在这里大力推荐,Java程序员要从现在开始建立自己的工具库,并在以后工作中不断的完善它。
  一、 工具库的一个简单例子。
  记得笔者刚开始建立工具库的时候,是从一个输出语句开始的。有时候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应用程序的特性之一。希望各位同行能够好好利用这个工具,来提高自己的能力。同时也要学会使用他人开发的工具包,这也是迅速提高自己开发能力的一个捷径。
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/84280/showart_2116076.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP