singletonメソッドについて
投稿日: Mar 20, 2009 12:25:4 PM
R4.1ではsingletonというメッセージを送るだけで、シングルトンとなるオブジェクトを簡単に生成できます。
Foo singleton == Foo singleton. "=> true"
singletonを送ると、Fooのシングルトンが生成されます。常に同一のインスタンスが返ってきます。
ここで特筆すべきは、既存のシングルトンでなかったインスタンスも、singletonが送られた時点で自動的にシングルトンになるということです。
instA := Foo new.
instB := Foo new.
instA ~= instB. "=> false"
singleton := Foo singleton.
instA == singleton. "=> true"
instA == instB. "=> true"
超便利ですね。ちなみにArrayなどのコアなクラスにsingletonと送ったりすると、なかなか貴重な体験ができます。