首页 > 代码库 > 读代码之private construtor

读代码之private construtor

private 构造函数

private修饰构造函数在Singleton设计模式中经常使用。但是今天在读到EntityUtils时,发现这是一个final类。final很好理解:EntityUtils只是一个工具类,里面包含数个static方法来处理HttpEntity。所以,设置为final,提高运行速度。但是其默认构造函数被private修饰。不太理解为什么这么写。上网查了一下private constructor的用法。发现有以下的用法

  1. classes containing only static utility methods
  2. classes containing only constants
  3. type safe enumerations
  4. singletons
private constructor 就是禁止该类被实例化,根据这一根本效果,可以将四种功能分为两大类
创建对象的行为被完全禁止
禁止外部使用者创建该类的对象。适用于只提供静态方法的类。含义为提醒使用者,该类无法创建对象,只有静态方法可以被使用。private constructor 屏蔽了系统语言提供的默认构造函数。只提供常量的类使用含义类似。
创建对象的行为在类内部进行
在单例模式(Singleton)中,只能有一个对象被创建。在type-safe enumerations中类似。