オブジェクト指向は愚かな考え。この世は計算式 ★3©2ch.net (961レス)
上下前次1-新
抽出解除 レス栞
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
546(8): デフォルトの名無しさん [sage] 2016/08/02(火)16:53 ID:I0xQlCpI(1/2)
>>545
> 元値から実売価格を計算するクロージャを持たせるんじゃないかなあ。
こんなんでどうですかね?
http://ideone.com/d8iLSE
ついでにRuby版も書いてみた
http://ideone.com/WW8gva
565(1): デフォルトの名無しさん [sage] 2016/08/02(火)22:08 ID:e9gYPknx(2/2)
>>553
>>538で「見たいだけ」って言ってるところをみると、これは反語で
>>546みたいに簡潔なのが出てくるとはこの時点では考えてなかったんじゃない?
だからデザパタは用語で実装じゃない、言語は関係ないって趣旨替えしたように読むのは穿ちすぎ?
574(1): デフォルトの名無しさん [sage] 2016/08/03(水)11:21 ID:nNt8IZmK(1)
>>566
まるでちがう。>>546はデコレータパターンじゃない。
Javaではデコレータパターンを使う問題を
デコレータパターンを使わずにより簡潔に記述した例。
624(1): デフォルトの名無しさん [sage] 2016/08/04(木)12:57 ID:iDV12Qqy(4/5)
>>620
GoFの定義如何に関わらず、>>546はデコレータパターンの実装ではないのだが?
627(1): デフォルトの名無しさん [sage] 2016/08/04(木)14:01 ID:gwNa+xfa(1/5)
つか、>>546のruby版って一体何?
デコレータパターンのつもり?
632(1): デフォルトの名無しさん [sage] 2016/08/04(木)16:59 ID:gwNa+xfa(4/5)
>>631
なんか実装手段が違ってきてますが・・・。
>>546のruby版はいったいどういう意図なのかが知りたいんだけど。
「rubyでclosureを使えばデコレータパターン同等のことができる」とか、そういう「意図」。
633(1): デフォルトの名無しさん [sage] 2016/08/04(木)17:09 ID:0aO0sFCL(9/13)
>>632
> なんか実装手段が違ってきてますが・・・。
本質部分は変えてないでしょ
変えたのも、クラスを直にいじるか、モジュールをprependするかくらいなもので
> closureを使えばデコレータパターン同等のことができる
>>540,545,546 の流れで、件のコードにそれ以外の意図を思いつくなら逆に聞きたい
634(1): デフォルトの名無しさん [sage] 2016/08/04(木)17:41 ID:gwNa+xfa(5/5)
>>633
うまく説明できないので、最後まで残っている違和感だけを説明して終わる。
WikipediaのDoublePriceクラスで、何か振る舞いを変えようと思えばDoublePriceクラスのみを変更すればいい。
DecoratorTestクラスの変更もしなくていい。
一方、>>546のコードだとそうはいかない。
これを「デコレータパターンを実装している」といっていいのか?
というのが俺の違和感。
まあ、それが本質なのか本質じゃないのかはわからんが。
636: デフォルトの名無しさん [sage] 2016/08/04(木)18:33 ID:0aO0sFCL(10/13)
>>634
> 一方、>>546のコードだとそうはいかない。
単純に、ideone.com/WW8gva はデコレートをテストにハードコードしているからそうなるってだけで
http://ideone.com/HOkUN1 というふうに書いておけば、デコレーターの振る舞いを変えたければ
それを定義した decorate_price.rb だけを変えれば、decorate_price_test.rb は変更不要でしょう。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.038s