From: Masaki Suketa Date: 1997-09-24T09:44:59+09:00 Subject: [ruby-list:4549] singleton pattern 助田です。 ruby のソースコードばかり追っかけてないで、たまには ruby スクリ プトも書こうということで... 今月のDDJの記事を参考にして、簡単な singleton パターン(のつもり) を ruby で実装してみました。 既に実装例があったり、こうした方が良いというのがあれば教えてくだ さい。 # singleton パターンの実装例 class SINGLETON private_class_method :new def SINGLETON.instance(*argment) if @self == nil @self = new(*argment) end return @self end end # 以下 SINGLETON の使用例 class SINGLETONCLASS < SINGLETON attr :val, TRUE def initialize(n, m) @val = n * m end end def output(instance, val) print(instance + ".val = " + val+ "\n"); end a = SINGLETONCLASS.instance(3,5) output("a", a.val) b = SINGLETONCLASS.instance(4,6) output("b", b.val) a.val = 6 output("a", a.val) output("b", b.val) c = SINGLETONCLASS.instance output("c", c.val) b.val = 4 output("a", a.val) output("b", b.val) output("c", c.val) print a, "\n" print b, "\n" print c, "\n" 助田 雅紀(suke@tonen.co.jp)