トップページ > プログラム > 2016年08月04日 > gwNa+xfa

書き込み順位&時間帯一覧

12 位/191 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000030110000005



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
オブジェクト指向は愚かな考え。この世は計算式 ★3©2ch.net

書き込みレス一覧

オブジェクト指向は愚かな考え。この世は計算式 ★3©2ch.net
627 :デフォルトの名無しさん[sage]:2016/08/04(木) 14:01:27.52 ID:gwNa+xfa
つか、>>546のruby版って一体何?
デコレータパターンのつもり?
オブジェクト指向は愚かな考え。この世は計算式 ★3©2ch.net
629 :デフォルトの名無しさん[sage]:2016/08/04(木) 14:41:37.79 ID:gwNa+xfa
>>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
オブジェクト指向は愚かな考え。この世は計算式 ★3©2ch.net
630 :デフォルトの名無しさん[sage]:2016/08/04(木) 14:42:24.41 ID:gwNa+xfa
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
オブジェクト指向は愚かな考え。この世は計算式 ★3©2ch.net
632 :デフォルトの名無しさん[sage]:2016/08/04(木) 16:59:33.41 ID:gwNa+xfa
>>631
なんか実装手段が違ってきてますが・・・。

>>546のruby版はいったいどういう意図なのかが知りたいんだけど。
「rubyでclosureを使えばデコレータパターン同等のことができる」とか、そういう「意図」。
オブジェクト指向は愚かな考え。この世は計算式 ★3©2ch.net
634 :デフォルトの名無しさん[sage]:2016/08/04(木) 17:41:28.54 ID:gwNa+xfa
>>633
うまく説明できないので、最後まで残っている違和感だけを説明して終わる。

WikipediaのDoublePriceクラスで、何か振る舞いを変えようと思えばDoublePriceクラスのみを変更すればいい。
DecoratorTestクラスの変更もしなくていい。

一方、>>546のコードだとそうはいかない。
これを「デコレータパターンを実装している」といっていいのか?
というのが俺の違和感。
まあ、それが本質なのか本質じゃないのかはわからんが。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。