• 締切済み

インスタンスを共有するには

1つのインスタンスを他の複数のクラスで共有するには どうすればよいのでしょうか。 私が知っているは、生成時に共有したいインスタンスを渡す という方法です。 他にどのような方法があるのでしょうか。 ご存知の方がいましたらご教授くださいよろしくお願いいたします。

みんなの回答

noname#49664
noname#49664
回答No.1

こういう場合の扱いとしては、デザインパターンの「シングルトン」というやつとして設計するのが一般的でしょう。クラス自体に、1つのインスタンスしか生成できない仕組みを用意してやるのですね。 考え方としては、まずコンストラクタの使用を禁止します。これは、コンストラクタをすべてprivateで実装すれば外部から一切newできなくなります。そして、getInstanceというようなメソッドを用意しておき、これを呼び出してインスタンスを取得するようにします。 このgetInstanceでは、あらかじめprivateフィールドにインスタンスを生成しておき、常にこれを返すようにしておきます。こうすることで、常にフィールドに保持されている同一のインスタンスが得られるようになります。

関連するQ&A