コンストラクタに対応するファクトリメソッド名は、パッケージ名で修飾しないクラス名から生成します。ファクトリメソッド名は、スーパークラスから継承したメソッドも含めて一意でなければなりません。しかし、以下の場合に名前が衝突します。
スーパークラスが、パッケージの異なる同名のクラスである場合
ひとつのクラスに、コンストラクタが複数定義されている場合
このような場合、同名のメソッドに対し、以下の規則で番号をつけます。
最初に現れた名前に01をつけ、以下昇順に番号をつける。
上記の規則を、スーパークラスで定義されたコンストラクタから順に適用する。ひとつのクラスに複数のコンストラクタがある場合、定義順に適用する。
例
java.util.Dateクラスおよびjava.sql.Dateクラス(java.util.Dateクラスのサブクラス)のコンストラクタに対応するファクトリメソッドは、以下の名前になります。
Javaのコンストラクタ | COBOLのファクトリメソッド | ||
---|---|---|---|
java.util.Date | Date() | java-util-Date | Create-Date-01 |
Date(int, int, int) | Create-Date-02 | ||
Date(int, int, int, int, int) | Create-Date-03 | ||
Date(int, int, int, int, int, int) | Create-Date-04 | ||
Date(long) | Create-Date-05 | ||
Date(String) | Create-Date-06 | ||
java.sql.Date | Date(int, int, int) | java-sql-Date | Create-Date-07 |
Date(long) | Create-Date-08 |