オブジェクト指向は愚かな考え。この世は計算式 ★3©2ch.net (961レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
627(1): デフォルトの名無しさん [sage] 2016/08/04(木)14:01 ID:gwNa+xfa(1/5)
つか、>>546のruby版って一体何?
デコレータパターンのつもり?
629(1): デフォルトの名無しさん [sage] 2016/08/04(木)14:41 ID:gwNa+xfa(2/5)
>>628
あ、デコレータパターンの実装だったんだ。
同じ感じでこれ実装できる?
class Log
def output(s)
puts s
end
end
class TimeStampLog
def initialize(log)
@log = log
end
def output(s)
@log.output "#{Time.now} #{s}"
end
end
class PidLog
def initialize(log)
@log = log
@pid = Process.pid
end
def output(s)
@log.output "[#{@pid}] #{s}"
end
end
630: デフォルトの名無しさん [sage] 2016/08/04(木)14:42 ID:gwNa+xfa(3/5)
log = TimeStampLog.new(PidLog.new(Log.new))
log.output 'aaa'
log.output 'bbb'
log2 = PidLog.new(TimeStampLog.new(Log.new))
log2.output 'aaa'
log2.output 'bbb'
結果:
[24968] 2016-08-04 14:41:58 +0900 aaa
[24968] 2016-08-04 14:41:58 +0900 bbb
2016-08-04 14:41:58 +0900 [24968] aaa
2016-08-04 14:41:58 +0900 [24968] bbb
632(1): デフォルトの名無しさん [sage] 2016/08/04(木)16:59 ID:gwNa+xfa(4/5)
>>631
なんか実装手段が違ってきてますが・・・。
>>546のruby版はいったいどういう意図なのかが知りたいんだけど。
「rubyでclosureを使えばデコレータパターン同等のことができる」とか、そういう「意図」。
634(1): デフォルトの名無しさん [sage] 2016/08/04(木)17:41 ID:gwNa+xfa(5/5)
>>633
うまく説明できないので、最後まで残っている違和感だけを説明して終わる。
WikipediaのDoublePriceクラスで、何か振る舞いを変えようと思えばDoublePriceクラスのみを変更すればいい。
DecoratorTestクラスの変更もしなくていい。
一方、>>546のコードだとそうはいかない。
これを「デコレータパターンを実装している」といっていいのか?
というのが俺の違和感。
まあ、それが本質なのか本質じゃないのかはわからんが。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.036s