`

编写工具类的总结

 
阅读更多

工具类的实现目标是:具有很强的通用性;能有较多的重载方法;尽量传递较少的参数;耦合度最好为零。随时,随地,方便的使用。

随时使用---因为用的比较多,可以考虑用static关键字修饰方法,使得方法在整个生命周期过程中一直处于加载状态,使用时不用重新加载。

随地使用---工具类的一个重要目标是给所有想用的,可能用到的人使用,所以一般的接口方法都设置成为public

方便使用---方法的重载要做足,方法的参数不能太复杂,功能细致,这样的方法就更灵活,应用范围就更广。

 

可以为自己写一个工具类的包(可以打包成jar包),到哪里都可以用。

 

让我们看一下好的工具类具体是个什么样子?

java.lang.System是个很好的例子。

System类定义为final

public final class System

 

声明了一个私有的不带参数的构造方法,这样使得使用者不可以将System类进行实例化。

/** Don't let anyone instantiate this class */

    private System() {

    }

 

System类里只有public private两种类型。PublicSystem对外提供的方法,private方法使其内部的实现更加结构合理。

除了上述的那个保护性的构造方法外,所有的方法,成员变量都是static的(private的方法也只有设置为static时,才能为publicstatic方法提供服务)。

 

public final static InputStream in = nullInputStream();

public final static PrintStream out = nullPrintStream();

public final static PrintStream err = nullPrintStream();

public static void setIn(InputStream in) {}

public static void setOut(PrintStream out) {}

public static void setErr(PrintStream err) {}

public static Channel inheritedChannel() throws IOException {}

public static

    void setSecurityManager(final SecurityManager s) {}

public static SecurityManager getSecurityManager() {}

public static native long currentTimeMillis();

public static native long nanoTime();

public static native void arraycopy(Object src,  int  srcPos,

                                        Object dest, int destPos,

                                        int length);

public static Properties getProperties() {}

public static void setProperties(Properties props) {}

public static String getProperty(String key) {}

public static String getProperty(String key, String def) {}

public static String setProperty(String key, String value) {}

public static String clearProperty(String key) {}

public static String getenv(String name) {}

public static java.util.Map<String,String> getenv() {}

public static void exit(int status){}

public static void runFinalization() {}

public static void runFinalizersOnExit(boolean value) {}

public static void load(String filename) {}

public static void loadLibrary(String libname) {}

public static native String mapLibraryName(String libname);

 

 

public(除了private外)成员变量前添加final,使得效率更高。

 

其它一些注意事项:

不要将工具类写的过大。一般的应用只会用到工具类的部分方法,全部写在一起就会让过多的没有用到的方法也加载到内存,占用资源。所以在工具类中最好以功能分类,放在一个package下。打包成jar文件,提高适用性。当然也可以开源代码,发布在网上。

0
0
分享到:
评论
1 楼 halk 2009-09-13  
工具类的实现目标是:具有很强的通用性;能有较多的重载方法;尽量传递较少的参数;耦合度最好为0
这点很赞~

代码颜色太晃眼了,建议颜色浅一点..

相关推荐

    PHP工具类总结

    在PHP开发过程中,工具类是不可或缺的一部分,它们可以极大地提高代码的可重用性和开发效率。下面我们将逐一探讨这些PHP工具类的实现和用途。 1. 表单验证类: 表单验证类主要用于处理用户通过网页提交的数据,确保...

    安卓开发框架工具类相关-个人总结的常用到的工具类可直接导入查看eclipse工具编写.rar

    "安卓开发框架工具类相关-个人总结的常用到的工具类可直接导入查看eclipse工具编写.rar" 这个压缩包文件,就是收集了作者在实际开发过程中总结的一些常用工具类,方便开发者导入到Eclipse环境中快速使用或参考。...

    java工具类,日志处理类

    在给定的“java工具类”中,我们可以期待找到这样的一些辅助函数,帮助我们更高效地编写代码。 异常处理是Java编程中的关键部分,它确保了程序在遇到错误或异常情况时能够优雅地失败,而不是崩溃。Java提供了try-...

    eclipse中有关mysql数据库工具类编写的例子

    ### Eclipse中MySQL数据库工具类编写详解 在Java开发过程中,我们经常会遇到需要操作数据库的情况,尤其是在Web应用开发中。为了方便地进行数据库操作,通常会编写一个专门的工具类来处理与数据库相关的逻辑,比如...

    java练手全程录4-处理工具类代码实现

    总结来说,"java练手全程录4-处理工具类代码实现"这个主题涵盖了设计和实现Java工具类的核心概念,包括静态方法、无状态设计以及常见的工具类场景,如字符串、日期时间、文件I/O等操作。而"中文16进制转换.exe"可能...

    C#常用工具类代码集合Util(自己工作总结)

    C#工具类的编写是提高代码复用性和可维护性的重要手段,它们遵循单一职责原则,每个方法专注于完成一个特定的任务。同时,良好的工具类库应该有明确的命名,合理的API设计,以及充分的注释,以便其他开发者能快速...

    Android-简单的Android工具类包含ActivityFragmentApplication基类和各类常用工具类集合

    总结,这个主题提供的是一套全面的Android开发组件,涵盖了Activity、Fragment和Application的核心管理,以及一系列实用工具类,旨在简化开发流程,提高开发效率。对于Android开发者来说,理解和掌握这样的工具集是...

    MapUtils工具类,轻松转换map数据与实体类

    总结一下,`MapUtils`工具类是Java开发中的一个实用组件,它简化了`Map`数据与实体类之间的转换。通过提供便利的方法,开发者可以快速地将键值对数据转换为具有相应属性的对象,反之亦然。这种数据转换能力在处理...

    Android-AndroidStudio快速创建常用工具类的插件

    Utils_plugin-master就是这样一个插件,它的目标是帮助开发者快速生成常见的工具类代码,减少手动编写的工作量。 要使用Utils_plugin-master,首先需要将其导入到Android Studio。这通常涉及到下载zip文件,解压后...

    解压缩工具类

    它表明该工具类是用Java语言编写的,可以直接集成到任何Java工程中,无需额外配置,具有良好的可复用性。"案例"意味着它可能包含示例代码,帮助开发者理解和使用。"web开发"指出这个工具类适用于Web应用环境,可以...

    es7.15.2版本全部封装工具类

    总结一下,"es7.15.2版本全部封装工具类"是一个针对Elasticsearch 7.15.2的Java工具集,提供了全面的数据操作功能,包括批量和单个的增删改查,以及高级的动态查询选项。对于需要与ES进行交互的Java项目来说,这是一...

    优化版动态权限申请工具类.zip

    总结来说,"优化版动态权限申请工具类.zip"为Android开发者提供了一种更高效、更友好的方式来处理运行时权限问题,减少了因权限管理带来的复杂性,提升了开发效率。通过学习和应用这个工具类,开发者可以更好地遵循...

    java文件上传下载工具类

    为了简化这些操作,开发者经常编写工具类,以封装复杂的过程并提供简洁的API。以下是对"java文件上传下载工具类"这一主题的详细解释。 首先,让我们了解文件上传。在Web应用中,用户可能需要上传文件,如图片、文档...

    简单Dialog工具类

    总结,"简单Dialog工具类"是Android开发中的实用工具,通过封装提高了开发效率和代码质量。了解并合理运用此类工具,可以帮助开发者更专注于核心业务逻辑,同时保证了应用的用户体验。在实际项目中,可以根据需求...

    JDBC链接Oracle数据库增删改查通用工具类

    这样的工具类能够简化开发过程,避免重复编写相似的数据库访问代码。 Oracle JDBC是Oracle公司提供的用于Java应用程序连接到Oracle数据库的驱动程序,ojdbc6.jar文件就是这个驱动的实现。在Java项目中,我们需要将...

    java常用工具类集合(也有转自他人的)

    总结来说,"java常用工具类集合"是一个涵盖了多种实用工具类的资源,包括但不限于字符串处理、集合操作、日期时间、IO操作等多个方面。通过学习和应用这些工具类,开发者能够更高效地编写代码,同时也能从开源社区中...

    httpUtils等工具类

    在实际应用中,`httpUtils`工具类的使用可以大大简化网络请求的代码编写,减少错误,并提高代码的可读性和可维护性。例如,它可能会使用OkHttp或者Retrofit这样的网络库作为底层实现,提供更高级别的接口给上层业务...

    工具类:res

    在软件开发过程中,工具类扮演着极其重要的角色,它们能够提供一系列辅助功能,帮助开发者简化代码编写过程,提高开发效率。“res”作为一类特定的工具类,在处理资源加密解密等场景下尤为关键。本文将对“res”工具...

    java自定义服务器检验工具类

    总结,"java自定义服务器检验工具类"是一个重要的开发实践,它通过提供预定义的验证函数,帮助开发者高效地处理服务器端的数据验证和安全问题。结合Maven Webapp项目,我们可以构建出一套完整的、可维护的服务器端...

    java常用工具类——个人总结

    以下是我个人对Java中常用工具类的总结,主要涉及了加密、文件上传和日期处理等核心领域。 1. **加密工具类**: - `java.security` 包下的 `MessageDigest` 类用于实现消息摘要算法,如MD5和SHA,常用于数据完整性...

Global site tag (gtag.js) - Google Analytics