何时使用static类(工具类)

原创 2016年02月06日 05:51:04
一个static类,指全部成员都是static方法构成的,而没有任何成员变量, 也称为Utility class 或者Utility Pattern [参考: Utility Pattern].它可以在程序中直接使用该类的方法,而不用实例化.static class相对单例有更好的性能,原因是它的方法不需要实例方法的动态绑定 (static方法本身不能被复写)。 

static类可以看作某一组方法的集合,也能够更好的复用代码.static类各个方法应当是无状态的(stateless),即没有成员变量保存中间状态(结果),每个函数相互独立.所以很多人批评static类是面向过程开发思想的产物,应当极力避免使用。也有人使用某种方法将static看起来更加符合OOP [参考:OOP Alternative to Utility Classes],不过这种争论并没有太大的意义。

static类虽说不会生成实例,但它也会一定的开销,而且是会影响程序初始化过程的。另外也不能带静态成员变量,但如果有一些场景特别需要时,就要注意它对应用性能的影响。可以通过这篇文章了解一下:应用程序启动速度优化

反观单例模式,它既符合面向对象的思想,也可以做到延迟初始化.但相对的它有稍大的性能开销。如果是频繁使用的对象可能会有些影响。

相关文章推荐

static class 静态类(Java)

一般情况下是不可以用static修饰类的。如果一定要用static修饰类的话,通常static修饰的是匿名内部类。 在一个类中创建另外一个类,叫做成员内部类。这个成员内部类可以静态的(利用sta...

static修饰方法--------一般用于一些工具类中

/* 需求:编写一个数组的工具类。 Arrays.toString() [1,2,3,4]; sort() *///数组工具类 class ArrayTool{ public...

Dao工具类能写成static方式吗?反复不定时出现"结果集关闭"或"空指针"问题的解决

这几天在做Ajax过程中,发现了一个很严重的问题, 一个页面上,有三处

java中什么时候使用静态static,工具类的创建

/* 什么时候使用静态? 要从两方面下手: 因为静态修饰的内容有成员变量和函数 什么时候定义静态的变量(类变量)呢? 当对象中出现共享数据时,该数据被静态所修饰 对象中的特有数据要定义成非静态存在...

JAVA之旅(五)——this,static,关键字,main函数,封装工具类,生成javadoc说明书,静态代码块

JAVA之旅(五)——this,static,关键字,main函数,封装工具类,生成javadoc说明书,静态代码块 周末收获颇多,继续学习 一.this关键字 用于区分局部变量和成员变量同名...

黑马程序员_07_static_main_工具类_static代码块_单例模式

---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------   0601-0601-0...

HTTP4.3 工具类、多线程下的连接池的使用

直接上码 最近用到多线程来对请求HTTP , 但是http的每次请求都是一次连接后重新连接,导致大量的数据积压,所以根据资料,重新写了一个HTTP的工具类 package cn.zto.util; ...

Android 通过WebService进行网络编程,使用工具类轻松实现

分类: Android 高手进阶2013-11-22 09:59 12280人阅读 评论(43) 收藏 举报 android调用WebServiceandroidWebService工具类 ...

【IOS工具类】像JAVA中一样使用NSString(NSStringWrapper)

文章转载自:http://devtang.com/blog/archives/ // // NSStringWrapper.h // NSStringWrapper // // Created ...

(工具类)使用UltraEdit与虚拟机上的Linux进行ftp连接

Configure FTP/SFTP Accounts A cornerstone feature of UltraEdit/UEStudio is the ability to open/save...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:何时使用static类(工具类)
举报原因:
原因补充:

(最多只允许输入30个字)