第四条:私有構造体を通じて非現実化の能力を強化する。
475 ワード
ある時、私達は静的な方法と静的な領域だけを含む種類を編纂しなければなりません。例えば、ツール類は実用化されたくないです。この種類に私有のコンストラクタを含めると、それは実用化されなくなります。
欠点はこのタイプは布団類化できません。すべてのコンストラクタは明示的または陰的に超種類のコンストラクタを呼び出す必要があります。この場合、サブクラスはアクセス可能な超種類のコンストラクタがありません。
//Noninstantiable utility class
public class UtilityClass{
//Suppress defalut constructor for noninstantiability
private UtilityClass(){
throw new AssertionError();
}
}
明示的なコンストラクタはプライベートですので、このクラスの外部にはアクセスできません。欠点はこのタイプは布団類化できません。すべてのコンストラクタは明示的または陰的に超種類のコンストラクタを呼び出す必要があります。この場合、サブクラスはアクセス可能な超種類のコンストラクタがありません。