オブジェクト指向は愚かな考え。この世は計算式 ★3©2ch.net (946レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
591(1): デフォルトの名無しさん [sage] 2016/08/04(木) 00:17:31.35 ID:iDV12Qqy(1/5) AAS
>>587587(1): デフォルトの名無しさん [sage] 2016/08/03(水) 20:45:27.46 ID:YtpqVXv4(1) AAS
>>574
> Javaではデコレータパターンを使う問題を
> デコレータパターンを使わずにより簡潔に記述した例。
お前は勘違いしているな。
デコレータパターンを実装しなさいというお題なんだから
それがデコレータパターンなんだよ。
Javaならこういう実装でやるが、他の言語では
その実装方法が違うだけ。
いや?
クロージャで実装しているのだから、デコレータパターンによる実装ではないよ。
コード読めない子?
608(1): デフォルトの名無しさん [sage] 2016/08/04(木) 06:27:25.67 ID:iDV12Qqy(2/5) AAS
>>605605(1): デフォルトの名無しさん [sage] 2016/08/04(木) 01:56:34.90 ID:tMKvO+zV(1) AAS
デコレータパターンの解決できる問題領域は他の(オブジェクト指向でない)方法でもっと簡潔に書ける、のはいいだろうか。
これと同じことが他のデザインパターンでもできるんじゃね?という主張だったと思うんだが。
Singletonは言語によって容易に達成できるものもあればそうでない言語もあるが、そう難しくは無いはず。
OCamlだったらmutable valueを持ったモジュール使えば同等のことが実現できる。
Adapterパターンも変更できない物がオブジェクトだったら関数1つで済むし、
モジュールだったらファンクタ使えば良い。
これを続けていけばデザインパターンがOOPの表現力の低さを解決する妥協案である、と示せる気がするが、
逆にOOPでデザパタ使うのが一番簡潔になる問題を探す方が難しいかもね。
だから、GoFはSmalltalkなら簡単に記述できる構造や機能を
JavaやC++の表現力で解決する妥協案を集めたものなの。
JavaやC++の表現能力や抽象度が低いことを勝手にOOPの表現能力の低さにすり替えるな。
619(1): デフォルトの名無しさん [sage] 2016/08/04(木) 10:47:43.12 ID:iDV12Qqy(3/5) AAS
「GoFは、」と、「デザインパターンは、」の区別がつかない人たちと技術を語るのは非常に困難である。
624(1): デフォルトの名無しさん [sage] 2016/08/04(木) 12:57:32.53 ID:iDV12Qqy(4/5) AAS
>>620GoFの定義如何に関わらず、>>546はデコレータパターンの実装ではないのだが?
635(2): デフォルトの名無しさん [sage] 2016/08/04(木) 18:07:30.87 ID:iDV12Qqy(5/5) AAS
>>626626(1): デフォルトの名無しさん [sage] 2016/08/04(木) 13:16:23.28 ID:0aO0sFCL(6/13) AAS
>>624
だとするとちょっと分からないのですが、
あなたの言う「Smalltalkなら簡単に記述できる構造や機能」で実現された
デコレーターパターン(GoFの定義如何に関わらない)というのを提示してもらうことはできますか?
Smalltalk は書けないということでしたら、端的に方針だけ示してもらえればこちらで書きますので。
そもそも Smalltalk ではデコレーターパターンが不要(なので、実装はナンセンス)とのお考えでしたら
代替として Smalltalk 組み込みのどういう構造や機能を使うかを示してもらえればさいわいです。
だーかーらー、
デコレータパターンという、修飾オブジェクトで被修飾オブジェクトでラップして、両者を同じ基底クラスから派生させることで型に互換性を持たせる、というバッドノウハウは静的型OOPLのためのものにすぎなくて、
同等の機能はSmalltalkでクロージャを使った実装(当然、上記デコレータパターンの実装ではない)で実現できる。
という主張に、どうして「じゃあSmalltalkで実装したデコレータパターンはどうなんだよ」がどれだけ的外れか理解できてる?
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.039s