オブジェクト指向は愚かな考え。この世は計算式 ★3©2ch.net (946レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
627
(1): デフォルトの名無しさん [sage] 2016/08/04(木) 14:01:27.52 ID:gwNa+xfa(1/5) AAS
つか、>>546
546(8): デフォルトの名無しさん [sage] 2016/08/02(火) 16:53:22.92 ID:I0xQlCpI(1/2) AAS
>>545
> 元値から実売価格を計算するクロージャを持たせるんじゃないかなあ。

こんなんでどうですかね?
外部リンク:ideone.com

ついでにRuby版も書いてみた
外部リンク:ideone.com
のruby版って一体何?
デコレータパターンのつもり?
629
(1): デフォルトの名無しさん [sage] 2016/08/04(木) 14:41:37.79 ID:gwNa+xfa(2/5) AAS
>>628
628(1): デフォルトの名無しさん [sage] 2016/08/04(木) 14:13:24.61 ID:0aO0sFCL(7/13) AAS
>>627
自分にはウィキペのデコレーターにあるJavaの例の要求仕様は満たしているように見えるけど。
具体的にはどこが不満?
あ、デコレータパターンの実装だったんだ。
同じ感じでこれ実装できる?
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:24.41 ID:gwNa+xfa(3/5) AAS
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:33.41 ID:gwNa+xfa(4/5) AAS
>>631
631(1): デフォルトの名無しさん [sage] 2016/08/04(木) 16:18:58.29 ID:0aO0sFCL(8/13) AAS
>>629

これでいい?

外部リンク:ideone.com
なんか実装手段が違ってきてますが・・・。

>>546のruby版はいったいどういう意図なのかが知りたいんだけど。
「rubyでclosureを使えばデコレータパターン同等のことができる」とか、そういう「意図」。
634
(1): デフォルトの名無しさん [sage] 2016/08/04(木) 17:41:28.54 ID:gwNa+xfa(5/5) AAS
>>633
633(1): デフォルトの名無しさん [sage] 2016/08/04(木) 17:09:10.90 ID:0aO0sFCL(9/13) AAS
>>632
> なんか実装手段が違ってきてますが・・・。

本質部分は変えてないでしょ
変えたのも、クラスを直にいじるか、モジュールをprependするかくらいなもので

> closureを使えばデコレータパターン同等のことができる

>>540,545,546 の流れで、件のコードにそれ以外の意図を思いつくなら逆に聞きたい
うまく説明できないので、最後まで残っている違和感だけを説明して終わる。

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

一方、>>546のコードだとそうはいかない。
これを「デコレータパターンを実装している」といっていいのか?
というのが俺の違和感。
まあ、それが本質なのか本質じゃないのかはわからんが。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.037s