[OK]をクリックすると、質問が明瞭でない場合があります。どのようにして、コンストラクタをファクトリクラスのみで使用できるようにしますか?
私は靴(CShoe)オブジェクトファクトリクラスがCFactoryであるとしましょう。 CFactoryは、単純なハッシュマップを使用してインスタンス化されたすべての靴を作成して格納するシングルトンクラスです。作成されたオブジェクトを使用するには、静的メソッドを使用してアクセスします。
工場でのみ呼び出すことができるようにCShoeのコンストラクタを強制する方法はありますか? (換言すれば、靴の作成は靴工場のシングルトンクラスでのみ可能であり、他のクラスではできないようにしてください)
製品を工場の入れ子にしたクラスにしたいですか? –
あなたはCShoeを内部クラス(静的クラスではない)にすることもできます。そうすることで、他の人がCFactoryのインスタンスを持たずにCShoeのインスタンスを作成できないようにすることもできます。 – Chii
例が実行可能ならば、リフレクションは常にsetAccessible()メソッドでアクセス制御修飾子を回避できます。これを停止するには、 "suppressAccessChecks"パーミッションを許可しないSecurityManagerを実行してください.http://java.sun.com/docs/books/tutorial/essential/environment/security.html –