昔作ったClassの整理をしていて、コンストラクタに渡す引数が違うので別Classを用意して対応しているいけていないものがあったので、今更ながら可変長引数を利用してまとめることに。
1.内容
例
Memcacheの操作で必要となる、値のSet/Getを行うだけのクラス
class MemCacheR
include Singleton
attr_accessor :x, :y, :z
def initialize(*args)
@x, @y, @z = args
end
def mem_get(*args)
x = args[0]
y = args[1]
cache = MemCache.new('127.0.0.1:11211')
cache.get(x+y)
end
def mem_set(*args)
x = args[0]
y = args[1]
z = args[2]
z ||= 0
cache = MemCache.new('127.0.0.1:11211')
cache[x+y]= z
end
end
X + yで keyを生成、Zは値
2.確認
MemCacheR.instance.mem_set("hogehoge", "1111111", 500000)
a = MemCacheR.instance.mem_get("hogehoge", "1111111")
p a
500000
取得できればOK