オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない。
https://twitter.com/ProgrammingMono/status/665702678006140928
研究グループは、血管新生注において血管が伸長する際の血管内皮細胞注運動を制御するしくみを、生物学と数理モデル・
コンピュータシミュレーションを融合させた先端的な研究手法により明らかにしました。
生物は、最小の機能単位である細胞が寄り集まった多細胞体です。しかし、細胞の集まりが、組織や器官といった
秩序ある形態や構造をつくり機能するしくみはほとんど分かっていません。中でも血管は、体中の全組織に十分な
酸素や栄養源を効率よく供給するため、組織や組織の間に入り込み、血管外の環境との相互作用により、巧妙な
枝分かれ構造をとっています。
これまでに本研究グループは、新しく血管がつくられる(血管新生)際の細胞の動きに着目し、特に血管内皮細胞の
動きをリアルタイムで可視化し、定量的に捉えることを可能にしてきました。
今回さらに、血管の伸長を制御するしくみについて、細胞が自発的に自らを制御して動く過程(自律的過程)と、
隣接した細胞から適宜影響を受けて動く過程(協調的過程)がうまく共存することで、全体の動きが巧みに統制
されていることを世界に先駆けて実証しました。
興味深いことに、血管内皮細胞が前後したり、お互いに追い抜きあったりという血管新生で見られる複雑な細胞集団の
動きを制御している中枢部分は、細胞一つ一つの動き(スピードと方向性)の「確率的な変化」として十分説明できる
ことをコンピュータシミュレーションで実証しました。
http://www.jst.go.jp/pr/announce/20151120-2/#YOUGO3
前スレ
オブジェクト指向は愚かな考え。この世は計算式 ★2
http://peace.2ch.net/test/read.cgi/tech/1450153388/
オブジェクト指向は愚かな考え。この世は計算式 ★3©2ch.net
2016/01/05(火) 02:10:25.72ID:hJUQcrkl
497デフォルトの名無しさん
2016/07/31(日) 09:09:00.42ID:xuMLlix3 その点ha-a関係はやりやすいなぜなら単なる集約であって分類が絡まないから
has-a関係の導入自体が矛盾を生じることは無いからだ
has-a関係の導入自体が矛盾を生じることは無いからだ
498デフォルトの名無しさん
2016/07/31(日) 09:36:24.74ID:tLh0Iyun is-a関係だと思っているものは全てhas-aとしても実装できる。
概念系統が複数ある場合、is-aでは多重継承もしくは、
全ての組み合わせの派生クラスを定義することが必要だが、
has-aではそういう問題は無く柔軟に設計できる。
概念系統が複数ある場合、is-aでは多重継承もしくは、
全ての組み合わせの派生クラスを定義することが必要だが、
has-aではそういう問題は無く柔軟に設計できる。
499デフォルトの名無しさん
2016/07/31(日) 09:41:31.16ID:/E3bqgob OO使わない場合に
フラグとかカウンタとかステータスってのをどう管理するのかを
単刀直入に知りたい。
関数型なんかでもこの辺がよくわからない
(消せるはずはないから何か別の概念などで整理・管理されるんだとは思うけど)
フラグとかカウンタとかステータスってのをどう管理するのかを
単刀直入に知りたい。
関数型なんかでもこの辺がよくわからない
(消せるはずはないから何か別の概念などで整理・管理されるんだとは思うけど)
500デフォルトの名無しさん
2016/07/31(日) 09:46:59.05ID:tLh0Iyun >>499
普通の構造体でいいのでは?(Cでいうところの)
普通の構造体でいいのでは?(Cでいうところの)
501デフォルトの名無しさん
2016/07/31(日) 09:59:49.33ID:p/Oh4nGe >>499
そこでクロージャですよ
そこでクロージャですよ
502デフォルトの名無しさん
2016/07/31(日) 10:00:24.80ID:P4D/j0eN is-a だったらliskov置換原則の方が理解し易いし、コード書くときの指針になる。
503デフォルトの名無しさん
2016/07/31(日) 10:09:28.04ID:xuMLlix3 ちなステータスというのは大概I/Oを通じて外界と繋がっている事物の結果を意味し、
実時間軸上でうつろうもの(mutableなブツ)なので厳密には関数型プログラミングに存在し得ない概念
関数型プログラミングでは「1」を返す関数と、和を返す関数から「1」+「1」=「2」という演繹ステップを経て
「2」を返す関数を作る、というように演繹ステップとしての時間経過しか扱わない
これでどうやって実時間で動くシステムをプログラムするのかというと、
演繹ステップの順序と実時間軸上の物事の変化順序が一致するように関数を設計してやって、
擬似的に演繹順序を実時間軸上の順序と合わせてそれっぽい動きを実現しているわけや
例えばHDDのエラーステータスとか、昨日のステータスに対し今日のステータスが変化した、と捉えるのではなしに、
「HDDの昨日のステータス」を返す関数と、ステータスの適切な処理に対応する何がしかを返す関数とから
「HDDの今日のステータス」に対する処理に対応する何がしかを返す関数を生成する
ことでHDDの今日のステータスを処理する
実時間軸上でうつろうもの(mutableなブツ)なので厳密には関数型プログラミングに存在し得ない概念
関数型プログラミングでは「1」を返す関数と、和を返す関数から「1」+「1」=「2」という演繹ステップを経て
「2」を返す関数を作る、というように演繹ステップとしての時間経過しか扱わない
これでどうやって実時間で動くシステムをプログラムするのかというと、
演繹ステップの順序と実時間軸上の物事の変化順序が一致するように関数を設計してやって、
擬似的に演繹順序を実時間軸上の順序と合わせてそれっぽい動きを実現しているわけや
例えばHDDのエラーステータスとか、昨日のステータスに対し今日のステータスが変化した、と捉えるのではなしに、
「HDDの昨日のステータス」を返す関数と、ステータスの適切な処理に対応する何がしかを返す関数とから
「HDDの今日のステータス」に対する処理に対応する何がしかを返す関数を生成する
ことでHDDの今日のステータスを処理する
504デフォルトの名無しさん
2016/07/31(日) 11:53:00.79ID:LD4Pss8J505デフォルトの名無しさん
2016/07/31(日) 13:06:04.94ID:xuMLlix3 >>504
is-a関係は一般には存在しないと書いたのじゃ
例えば妻クラスを女クラスの派生クラスにしたりしたら、同姓婚が合法化されたときプログラムは作り直しになるであろう
また、なんで女クラスの派生クラスが妻クラスではいけないのか?その根拠を目下人類は手にしていない
はい論破
ちな、有限集合に関しては無矛盾性は常に証明できるから別に
女クラス←妻クラス
でも
妻クラス←女クラス
でも良いが、有限のケースしか想定しないんならswitch文で良いやという話で
オブジェクト指向の出る必然性がかなり減る
あくまで無限集合としてのクラスXを今数学的に正しく定義付けできるか?(X=妻 or 女 or so on)というのが問題
is-a関係は一般には存在しないと書いたのじゃ
例えば妻クラスを女クラスの派生クラスにしたりしたら、同姓婚が合法化されたときプログラムは作り直しになるであろう
また、なんで女クラスの派生クラスが妻クラスではいけないのか?その根拠を目下人類は手にしていない
はい論破
ちな、有限集合に関しては無矛盾性は常に証明できるから別に
女クラス←妻クラス
でも
妻クラス←女クラス
でも良いが、有限のケースしか想定しないんならswitch文で良いやという話で
オブジェクト指向の出る必然性がかなり減る
あくまで無限集合としてのクラスXを今数学的に正しく定義付けできるか?(X=妻 or 女 or so on)というのが問題
506デフォルトの名無しさん
2016/07/31(日) 15:57:24.63ID:Wl4/o5Bb is-aかどうかなんて抽象的すぎて判断の材料になんないよな。
何を持ってしてis-aとするかが大事なんだけど、そこをきちんと答えられる人は少ない。
何を持ってしてis-aとするかが大事なんだけど、そこをきちんと答えられる人は少ない。
507デフォルトの名無しさん
2016/07/31(日) 15:58:19.37ID:JthY0EmQ508デフォルトの名無しさん
2016/07/31(日) 16:07:11.65ID:Wl4/o5Bb >>507
男も改造すれば女になりうるから、男クラスのインスタンスを作ると、参照を維持したまま女クラスに変身できない。
だから、is-aなんてものは、性転換をしないという契約がなければなりたたない。
契約をしてないのにis-aなんて言いきれる訳ない。
男も改造すれば女になりうるから、男クラスのインスタンスを作ると、参照を維持したまま女クラスに変身できない。
だから、is-aなんてものは、性転換をしないという契約がなければなりたたない。
契約をしてないのにis-aなんて言いきれる訳ない。
509デフォルトの名無しさん
2016/07/31(日) 16:07:23.65ID:kxVM21o1 妻とか女とか、単なる属性をクラスにするからワケが分からなくなる。
510デフォルトの名無しさん
2016/07/31(日) 16:27:16.51ID:iFqDH3lg いいから、肛門クラスを作って
デリケートしろ!
デリケートしろ!
511デフォルトの名無しさん
2016/07/31(日) 16:35:53.61ID:Wl4/o5Bb 口に肛門つけてください。
しゃべれるしうんこできるし便利だと思うんです。
しゃべれるしうんこできるし便利だと思うんです。
512デフォルトの名無しさん
2016/07/31(日) 21:22:59.29ID:XDiDpvFC 話についていけない子が
必死で面白レスしようとするのが悲痛
人間の悲しみが透けて見える
必死で面白レスしようとするのが悲痛
人間の悲しみが透けて見える
513デフォルトの名無しさん
2016/08/01(月) 00:44:08.60ID:E1waX2Jm >>505
> 例えば妻クラスを女クラスの派生クラスにしたりしたら、同姓婚が合法化されたときプログラムは作り直しになるであろう
ならないなw
お前設計がおかしいよ。
妻をクラスするって発想がそもそも
キチガイじみてる。
> 例えば妻クラスを女クラスの派生クラスにしたりしたら、同姓婚が合法化されたときプログラムは作り直しになるであろう
ならないなw
お前設計がおかしいよ。
妻をクラスするって発想がそもそも
キチガイじみてる。
514デフォルトの名無しさん
2016/08/01(月) 00:46:25.46ID:E1waX2Jm 普通は性別は属性だよなw
人クラスがあって、名前・年齢・性別
ほら属性だ。
そのうち佐藤クラスを作るとか言いそうだwwww
人クラスがあって、名前・年齢・性別
ほら属性だ。
そのうち佐藤クラスを作るとか言いそうだwwww
515デフォルトの名無しさん
2016/08/01(月) 00:52:22.69ID:E1waX2Jm is-a関係っていうのは必要条件であって十分条件じゃないんだがw
is-aになっていれば必ず継承関係にあるってことじゃない。
継承しようと思ったとき、is-a関係を満たしていなければいけないって話だ。
is-aになっていれば必ず継承関係にあるってことじゃない。
継承しようと思ったとき、is-a関係を満たしていなければいけないって話だ。
516デフォルトの名無しさん
2016/08/01(月) 01:01:45.57ID:8BzY1j1Y オブジェクト指向ってどこで間違ったんだろう
途中までは良い線行ってたと思うんだけど、どこからか使いものにならなくなったよね
途中までは良い線行ってたと思うんだけど、どこからか使いものにならなくなったよね
517デフォルトの名無しさん
2016/08/01(月) 01:04:20.06ID:E1waX2Jm オブジェクト指向が使われてない
フレームワークなんて無いんだが?
使い物にならなくなったという考えがそもそも間違いだな。
まあ「使い物にならなくなった」と言い続けることで
他の人に事実だと錯覚させようとする手段ニダ?w
フレームワークなんて無いんだが?
使い物にならなくなったという考えがそもそも間違いだな。
まあ「使い物にならなくなった」と言い続けることで
他の人に事実だと錯覚させようとする手段ニダ?w
518デフォルトの名無しさん
2016/08/01(月) 01:06:05.40ID:fJ4xvUon だから、継承捨てて委譲を使えっての!
519デフォルトの名無しさん
2016/08/01(月) 01:41:20.92ID:C6PCKyxq >>517 本当にオブジェクト指向が必要だから使っているのか、
抽象化の手段がオブジェクト指向しか無いから使わざるをえないのか
昨今の言語なら継承以外の方法で抽象化とか再利用とかできたりする
OOは本当に最小限にして、late bindingやメッセージパッシングの妙を際立たせるとより効果的
Real World OCamlだとヘテロな型を持つ木構造を探索するのに使ってたりしたな
抽象化の手段がオブジェクト指向しか無いから使わざるをえないのか
昨今の言語なら継承以外の方法で抽象化とか再利用とかできたりする
OOは本当に最小限にして、late bindingやメッセージパッシングの妙を際立たせるとより効果的
Real World OCamlだとヘテロな型を持つ木構造を探索するのに使ってたりしたな
520デフォルトの名無しさん
2016/08/01(月) 01:41:37.76ID:E1waX2Jm 継承捨てて委譲を使えっていうのは
マイクロソフト用語でコンポーネント指向っていうんだが、
これを意図的に取り入れたのが2000年前後に使われていたVB6なんだよな。
そのVB6も.NETになってから継承をサポートしたし、
コンポーネント指向だけではだめだということだろう。
マイクロソフト用語でコンポーネント指向っていうんだが、
これを意図的に取り入れたのが2000年前後に使われていたVB6なんだよな。
そのVB6も.NETになってから継承をサポートしたし、
コンポーネント指向だけではだめだということだろう。
521デフォルトの名無しさん
2016/08/01(月) 01:43:39.68ID:E1waX2Jm >>519
オブジェクト指向は必要だから使うんじゃなくて
いくつもある手段の中から一番適切だから使うんだよ。
お前が例示する使い方は、単にオブジェクト指向じゃないほうが
適切だってだけ。そしてオブジェクト指向が適切だから
ほとんどのフレームワークでオブジェクト指向が使われている。
他に代替技術があるにもかかわらずだ。
オブジェクト指向は必要だから使うんじゃなくて
いくつもある手段の中から一番適切だから使うんだよ。
お前が例示する使い方は、単にオブジェクト指向じゃないほうが
適切だってだけ。そしてオブジェクト指向が適切だから
ほとんどのフレームワークでオブジェクト指向が使われている。
他に代替技術があるにもかかわらずだ。
522デフォルトの名無しさん
2016/08/01(月) 02:44:42.52ID:6ITirnPy523デフォルトの名無しさん
2016/08/01(月) 03:09:46.97ID:FN/zaXKS >>516
>どこからか使いものにならなくなったよね
C++の奇形めいたオブジェクト指向は衰退して
別方面で進化してきたObjecive-CとJavaが本流として
いま街でみかける全てのスマホアプリを支えてるけどな。
>どこからか使いものにならなくなったよね
C++の奇形めいたオブジェクト指向は衰退して
別方面で進化してきたObjecive-CとJavaが本流として
いま街でみかける全てのスマホアプリを支えてるけどな。
524デフォルトの名無しさん
2016/08/01(月) 03:31:24.59ID:cj2k2Gm/ 今はObjrctive-CじゃなくてSwiftじゃね?
525デフォルトの名無しさん
2016/08/01(月) 04:29:03.24ID:C6PCKyxq >>521 適切だから使うというなら何故デザインパターンなんて出てきたのか?
デザパタの大部分がOOに適さない問題を無理矢理OOで解決するためのもので、
他の手段が使える言語なら間違いなく採用しない
他にもExpression ProblemをJavaで解決しているのとOCamlで解決しているのを比較してみるといい
OOだと論文書けるくらいには面倒な方法があるけど、OCamlのVariant使った方法と比べて圧倒的に可読性と簡潔さに劣っている
デザパタの大部分がOOに適さない問題を無理矢理OOで解決するためのもので、
他の手段が使える言語なら間違いなく採用しない
他にもExpression ProblemをJavaで解決しているのとOCamlで解決しているのを比較してみるといい
OOだと論文書けるくらいには面倒な方法があるけど、OCamlのVariant使った方法と比べて圧倒的に可読性と簡潔さに劣っている
526デフォルトの名無しさん
2016/08/01(月) 06:27:47.87ID:c5RAbFYM JavaはC++よりレガシーな言語になってしまったが…
527デフォルトの名無しさん
2016/08/01(月) 09:36:21.09ID:E1waX2Jm >>525
> デザパタの大部分がOOに適さない問題を無理矢理OOで解決するためのもので、
違う。OO便利だなーって使っているうちに
設計のアルゴリズムが確立されていって、
それをまとめたのがデザパタ
> デザパタの大部分がOOに適さない問題を無理矢理OOで解決するためのもので、
違う。OO便利だなーって使っているうちに
設計のアルゴリズムが確立されていって、
それをまとめたのがデザパタ
528デフォルトの名無しさん
2016/08/01(月) 10:06:54.28ID:Q0J3uZmP いや、デザパタはOOと関係無いから。
関係あるのはOOPの方
関係あるのはOOPの方
529デフォルトの名無しさん
2016/08/01(月) 10:50:43.99ID:pyyhbxGP 【閲覧注意】戦闘に巻き込まれて頭部を切断された少女の遺体。これがリアルなシリア。
http://dqnworld.com/archives/34.html
これが本当の戦争の恐怖。この少女には大人の戦争は関係ないですからね。巻き込まれた少女の遺体を持って何か
を訴えかけている男たちの映像です。
【閲覧注意】シリアで反体制派の兵士が顔を吹き飛ばされてしまう瞬間。
http://dqnworld.com/archives/89.html
スローモーションが怖すぎる・・・。
【閲覧注意】アッラーフアクバルを叫びながら少年を斬首する映像を公開する。
http://dqnworld.com/archives/3975.html
点滴?のようなものが見えるんだけど。助けられた少年じゃなかったのか。助けられた所を強奪されてアッラーフ
アクバル?なのかしら・・・。
【閲覧注意】磔にされた戦闘機パイロットの遺体。シリアにて。
http://dqnworld.com/archives/3996.html
今日のアッラーフアクバル動画。
妻の目の前でぶっ飛ばされた旦那さん?これは死んだかな(°_°)
http://dqnworld.com/archives/4004.html
さすがにこれだけ飛ばされたら助からないかな・・・。
【閲覧注意】あおむけでゲロを吐きまくっている男性。助けてやれよ・・・。窒息するぞ(@_@;)
http://dqnworld.com/archives/4007.html
これ結構危ないんじゃないの?撮影してないで横向きにしてやれよ。これ窒息する可能性あるだろ。
衝撃映像。事故って大回転した車から少女がポロリ。
http://dqnworld.com/archives/4013.html
この少女がどうなったのかが気になる所ですが動画の説明には何も書かれていなかった・・・。
http://dqnworld.com/archives/34.html
これが本当の戦争の恐怖。この少女には大人の戦争は関係ないですからね。巻き込まれた少女の遺体を持って何か
を訴えかけている男たちの映像です。
【閲覧注意】シリアで反体制派の兵士が顔を吹き飛ばされてしまう瞬間。
http://dqnworld.com/archives/89.html
スローモーションが怖すぎる・・・。
【閲覧注意】アッラーフアクバルを叫びながら少年を斬首する映像を公開する。
http://dqnworld.com/archives/3975.html
点滴?のようなものが見えるんだけど。助けられた少年じゃなかったのか。助けられた所を強奪されてアッラーフ
アクバル?なのかしら・・・。
【閲覧注意】磔にされた戦闘機パイロットの遺体。シリアにて。
http://dqnworld.com/archives/3996.html
今日のアッラーフアクバル動画。
妻の目の前でぶっ飛ばされた旦那さん?これは死んだかな(°_°)
http://dqnworld.com/archives/4004.html
さすがにこれだけ飛ばされたら助からないかな・・・。
【閲覧注意】あおむけでゲロを吐きまくっている男性。助けてやれよ・・・。窒息するぞ(@_@;)
http://dqnworld.com/archives/4007.html
これ結構危ないんじゃないの?撮影してないで横向きにしてやれよ。これ窒息する可能性あるだろ。
衝撃映像。事故って大回転した車から少女がポロリ。
http://dqnworld.com/archives/4013.html
この少女がどうなったのかが気になる所ですが動画の説明には何も書かれていなかった・・・。
530デフォルトの名無しさん
2016/08/01(月) 10:52:18.11ID:IZIdUKpU ここまでLSPの話題なし
531デフォルトの名無しさん
2016/08/01(月) 17:10:00.57ID:GD9lEFl6 >>525
> デザパタの大部分がOOに適さない問題を無理矢理OOで解決するためのもので、
おしい。
デザパタはJavaやC++に適さない問題を無理やりJavaやC++で解決するためのもので、
SmalltalkやSelfで書けば圧倒的に簡潔かつ明瞭に記述できる。
> デザパタの大部分がOOに適さない問題を無理矢理OOで解決するためのもので、
おしい。
デザパタはJavaやC++に適さない問題を無理やりJavaやC++で解決するためのもので、
SmalltalkやSelfで書けば圧倒的に簡潔かつ明瞭に記述できる。
532デフォルトの名無しさん
2016/08/01(月) 18:06:20.18ID:99zq/hjd smalltalk だと、人間クラスと美少女クラスの問題は
どう解決するの?
どう解決するの?
533デフォルトの名無しさん
2016/08/01(月) 20:14:16.64ID:NIKdUbwx Squeak Smalltalk だと、こんな感じか?
Object subclass: #人間
instanceVariableNames: 'もろもろ'
classVariableNames: ''
poolDictionaries: ''
category: '美少女-排便'.
人間 compile: '排便 ^#便'.
Trait named: #美少女 uses: #() category: '美少女-排便'.
美少女 compile: '排便 self notify: ''トイレには行きません''. ^#プリン'.
おまえら := 人間 new.
おまえら 排便. "=> #便 "
橋本環奈 := 人間 new.
橋本環奈 assureUniClass class uses: 美少女.
橋本環奈 排便. "Warning: トイレには行きません => #プリン"
Object subclass: #人間
instanceVariableNames: 'もろもろ'
classVariableNames: ''
poolDictionaries: ''
category: '美少女-排便'.
人間 compile: '排便 ^#便'.
Trait named: #美少女 uses: #() category: '美少女-排便'.
美少女 compile: '排便 self notify: ''トイレには行きません''. ^#プリン'.
おまえら := 人間 new.
おまえら 排便. "=> #便 "
橋本環奈 := 人間 new.
橋本環奈 assureUniClass class uses: 美少女.
橋本環奈 排便. "Warning: トイレには行きません => #プリン"
534デフォルトの名無しさん
2016/08/01(月) 20:39:01.26ID:E1waX2Jm >>531
> SmalltalkやSelfで書けば圧倒的に簡潔かつ明瞭に記述できる。
例えば、どのパターンが簡潔明瞭に記述できるの?
一番簡単なパターンでいいので書いてみて。
考えるのが面倒なら俺が出題しても良い?
Singletonは個人的につまらないので
そうだね、DecoratorはSmalltalkやSelfで書いたらどうなる?
> SmalltalkやSelfで書けば圧倒的に簡潔かつ明瞭に記述できる。
例えば、どのパターンが簡潔明瞭に記述できるの?
一番簡単なパターンでいいので書いてみて。
考えるのが面倒なら俺が出題しても良い?
Singletonは個人的につまらないので
そうだね、DecoratorはSmalltalkやSelfで書いたらどうなる?
535デフォルトの名無しさん
2016/08/02(火) 00:07:55.94ID:6KXXOitA >>534
試しにウィキペの Decorator パターン
https://ja.m.wikipedia.org/wiki/Decorator_パターン
にある例を Smalltalk で書いてみた
http://ideone.com/Y1WAxY
けど、圧倒的に簡潔になった感じはしないな
>>531 ならどんなふうに書く?
試しにウィキペの Decorator パターン
https://ja.m.wikipedia.org/wiki/Decorator_パターン
にある例を Smalltalk で書いてみた
http://ideone.com/Y1WAxY
けど、圧倒的に簡潔になった感じはしないな
>>531 ならどんなふうに書く?
536デフォルトの名無しさん
2016/08/02(火) 00:11:39.50ID:xLK/JaT/ シングルトンなんて言語に最初から組み込んでおけ(Scala信者並感)
537デフォルトの名無しさん
2016/08/02(火) 00:40:29.48ID:Aujbapgh >>532
そもそもきみは継承関係=オブジェクト指向でしか発想してないから
クソ邪魔くさい継承取っ払ってモジュール自由に組み外しできるタイプの
オブジェクト指向の話にまったくついてこれてないからずっと嗤われてるわけで。
そもそもきみは継承関係=オブジェクト指向でしか発想してないから
クソ邪魔くさい継承取っ払ってモジュール自由に組み外しできるタイプの
オブジェクト指向の話にまったくついてこれてないからずっと嗤われてるわけで。
538デフォルトの名無しさん
2016/08/02(火) 00:44:39.63ID:flPsn8Jo539デフォルトの名無しさん
2016/08/02(火) 05:55:14.53ID:wOSsX6OQ デコレータパターンはそもそも静的に型がつけられることからくるクラス階層への制約を誤魔化すための小手先の技術でしかない。
型が完全に動的なSmalltalkやSelfではデコレータパターン自体が不要。
型が完全に動的なSmalltalkやSelfではデコレータパターン自体が不要。
540デフォルトの名無しさん
2016/08/02(火) 10:26:45.37ID:KjBiyzhL 型が動的だと>>535の例のようなコードはどうなるの?
541デフォルトの名無しさん
2016/08/02(火) 10:29:15.63ID:YMxtX/GD そそ
例えばアセンブリや機械語は制約がないからデコレータパターンとか要らないでしょ
それと同じでSmalltalkには何も必要ないよ
例えばアセンブリや機械語は制約がないからデコレータパターンとか要らないでしょ
それと同じでSmalltalkには何も必要ないよ
542デフォルトの名無しさん
2016/08/02(火) 13:11:20.31ID:KCBRtMku 全然違うのだが。デコレータもSmallTalkも理解してないとみた。
543デフォルトの名無しさん
2016/08/02(火) 13:40:40.79ID:C0zGukRC アセンブリというかC言語だとこんな感じか。出来るには出来るけどちょっとねえ
http://codepad.org/XgRtJlQb
http://codepad.org/XgRtJlQb
544デフォルトの名無しさん
2016/08/02(火) 15:34:07.46ID:lROFhaXh なにも知らなくても語れる。
それが Smalltalk のいいところらしい。
人間の悲しさがほの見えるな・・・
それが Smalltalk のいいところらしい。
人間の悲しさがほの見えるな・・・
545デフォルトの名無しさん
2016/08/02(火) 16:01:47.58ID:wOSsX6OQ >>540
Smalltalkはよくわからないけど、
DoublePriceとかWholesalePriceとかいうクラスを増やすより、
元値から実売価格を計算するクロージャを持たせるんじゃないかなあ。
SmalltalkのPluggableMVCとかもクロージャで柔軟な変換を実装しているし。
Smalltalkはよくわからないけど、
DoublePriceとかWholesalePriceとかいうクラスを増やすより、
元値から実売価格を計算するクロージャを持たせるんじゃないかなあ。
SmalltalkのPluggableMVCとかもクロージャで柔軟な変換を実装しているし。
546デフォルトの名無しさん
2016/08/02(火) 16:53:22.92ID:I0xQlCpI >>545
> 元値から実売価格を計算するクロージャを持たせるんじゃないかなあ。
こんなんでどうですかね?
http://ideone.com/d8iLSE
ついでにRuby版も書いてみた
http://ideone.com/WW8gva
> 元値から実売価格を計算するクロージャを持たせるんじゃないかなあ。
こんなんでどうですかね?
http://ideone.com/d8iLSE
ついでにRuby版も書いてみた
http://ideone.com/WW8gva
547デフォルトの名無しさん
2016/08/02(火) 17:16:35.65ID:I0xQlCpI >>543
これだと Java 版でいうところの getValue() する前に
毎回、二倍にして 利益80乗せて、また二倍にしてもう一度 利益200乗せて…とかって
いちいち書かないと 840を返せないから、結果は合っているけど要求仕様を満たしていないような気がする
これだと Java 版でいうところの getValue() する前に
毎回、二倍にして 利益80乗せて、また二倍にしてもう一度 利益200乗せて…とかって
いちいち書かないと 840を返せないから、結果は合っているけど要求仕様を満たしていないような気がする
548デフォルトの名無しさん
2016/08/02(火) 18:25:05.78ID:lROFhaXh いつになったら、
人間クラスと美少女クラスの問題に辿りつけるのかね?
悲しいの〜。
人間クラスと美少女クラスの問題に辿りつけるのかね?
悲しいの〜。
549デフォルトの名無しさん
2016/08/02(火) 20:24:15.92ID:wOSsX6OQ550デフォルトの名無しさん
2016/08/02(火) 20:30:55.27ID:lROFhaXh どう解けてるんだよ。
人間の肛門と天使の肛門にコンポーネントするのか?
人間の肛門と天使の肛門にコンポーネントするのか?
551デフォルトの名無しさん
2016/08/02(火) 20:41:47.88ID:UCo4tbLK 用途も分からず闇雲に現実世界をクラス化して行ったら、一生掛かっても終わらないから無駄な事すんな。
552デフォルトの名無しさん
2016/08/02(火) 20:42:03.85ID:9rM4/wP9 美少女は偶像であり人間ではない
553デフォルトの名無しさん
2016/08/02(火) 20:57:34.64ID:flPsn8Jo もうそろそろいいかな?
みんな「デコレーターパターン」をどうするか?というテーマで
会話が成り立ってるよね?
つまりこういうことさ。デザインパターンっていうのは用語。
実装じゃない。
デコレーターパターンをJavaならこう書く、SmallTalkならこう書くと
いうふうに共通認識ができてる。これこそデザインパターンの有用な所。
だからコードの書き方が決まってるわけじゃないんだよ。
設計だからね。言語が決まらない状態であっても話はできる。
デザインパターンをどういうふうに書くかってのは例でしか無いんだよ。
目的を達成できるならどう書くてもいいし、デコレータパターンを
どう書いてもそれはデコレータパターンなのさ。
SmallTalkであってもデコレーターパターンっていうのは存在する。
だからこそSmallTalkでデコレータパターンをシンプルに書くことができる!と
主張できる。
みんな「デコレーターパターン」をどうするか?というテーマで
会話が成り立ってるよね?
つまりこういうことさ。デザインパターンっていうのは用語。
実装じゃない。
デコレーターパターンをJavaならこう書く、SmallTalkならこう書くと
いうふうに共通認識ができてる。これこそデザインパターンの有用な所。
だからコードの書き方が決まってるわけじゃないんだよ。
設計だからね。言語が決まらない状態であっても話はできる。
デザインパターンをどういうふうに書くかってのは例でしか無いんだよ。
目的を達成できるならどう書くてもいいし、デコレータパターンを
どう書いてもそれはデコレータパターンなのさ。
SmallTalkであってもデコレーターパターンっていうのは存在する。
だからこそSmallTalkでデコレータパターンをシンプルに書くことができる!と
主張できる。
554デフォルトの名無しさん
2016/08/02(火) 21:16:53.04ID:LOKS06K+555デフォルトの名無しさん
2016/08/02(火) 21:20:29.76ID:flPsn8Jo >>554
言いたいことはそれだけかw
言いたいことはそれだけかw
556デフォルトの名無しさん
2016/08/02(火) 21:22:05.73ID:LOKS06K+ ごめんね
557デフォルトの名無しさん
2016/08/02(火) 21:24:18.11ID:e9gYPknx Smalltalk の t を大文字で書くやつは無知か知ったかぶり
558デフォルトの名無しさん
2016/08/02(火) 21:24:35.32ID:lROFhaXh 実は誰も Smalltalk なんて知らない www
559デフォルトの名無しさん
2016/08/02(火) 21:27:22.36ID:flPsn8Jo 反論あるなら待ってるよw
560デフォルトの名無しさん
2016/08/02(火) 21:32:29.72ID:LOKS06K+ >>557
ワロタw
ワロタw
561デフォルトの名無しさん
2016/08/02(火) 21:38:39.55ID:UCo4tbLK 言語は関係無いと言う内容の話への反論が、言語名のミスプリントの指摘とか、レベル低過ぎだろw
小学生の負け惜しみかよw
小学生の負け惜しみかよw
562デフォルトの名無しさん
2016/08/02(火) 21:39:26.48ID:flPsn8Jo563デフォルトの名無しさん
2016/08/02(火) 21:40:28.47ID:UCo4tbLK うゎw
保育園だなここはw
保育園だなここはw
564デフォルトの名無しさん
2016/08/02(火) 21:47:57.27ID:6KXXOitA >>561
「プリント」とかまさに小並
「プリント」とかまさに小並
565デフォルトの名無しさん
2016/08/02(火) 22:08:58.16ID:e9gYPknx566デフォルトの名無しさん
2016/08/02(火) 22:14:56.76ID:flPsn8Jo >>565
いやw
最初からこのために、
デコレータパターンをSmallTalkで書いたらどうなるの?って
話題を振って会話をさせたんだよ。
デコレータパターンという共通知識があり、
SmallTalkでそれを実装することができるという会話をね。
もし実装が決まっているものであれば、
SmallTalkでデコレータパターンを実装すれば
シンプルな形で実装できるんだっていう話はでてこない。
いやw
最初からこのために、
デコレータパターンをSmallTalkで書いたらどうなるの?って
話題を振って会話をさせたんだよ。
デコレータパターンという共通知識があり、
SmallTalkでそれを実装することができるという会話をね。
もし実装が決まっているものであれば、
SmallTalkでデコレータパターンを実装すれば
シンプルな形で実装できるんだっていう話はでてこない。
567デフォルトの名無しさん
2016/08/02(火) 22:27:10.71ID:KCBRtMku そもそもC++でデコレーターでもそんな難しくないでしょw
シングルトンの方がよっぽどややこしい。
シングルトンの方がよっぽどややこしい。
568デフォルトの名無しさん
2016/08/02(火) 22:30:18.68ID:flPsn8Jo 「シングルトン」だけで話が通じる所がデザインパターンの
便利なところだね。
さてシングルトンにもいろんな実装があるけど、
DIコンテナを使ってシングルトンに見せるっていう方法もあるよね。
これだと普通にクラスを作るだけで良くなる。
便利なところだね。
さてシングルトンにもいろんな実装があるけど、
DIコンテナを使ってシングルトンに見せるっていう方法もあるよね。
これだと普通にクラスを作るだけで良くなる。
569デフォルトの名無しさん
2016/08/02(火) 22:34:48.24ID:qU1dasmj 兄さん、そこでPythonですよ
ですしおすし
ですしおすし
570デフォルトの名無しさん
2016/08/02(火) 23:26:19.20ID:QqIbwu4d Java8ならもっとHENTAIなコードが書けるぞ
http://ideone.com/DbIiD0
http://ideone.com/DbIiD0
571デフォルトの名無しさん
2016/08/02(火) 23:41:10.66ID:6KXXOitA572デフォルトの名無しさん
2016/08/02(火) 23:59:46.02ID:lROFhaXh Smalltalk の最大の魅力は、
それが雑談に過ぎないということである。
by アラン・ケイ
それが雑談に過ぎないということである。
by アラン・ケイ
573デフォルトの名無しさん
2016/08/03(水) 00:45:18.40ID:qJ0ntPw4 >>570
new Price((120*2+80)*2+200) を作りたいわけではなくて
new Price(120) をデコって 840 を返させるのが Decorator
だからデコったあとに setValue(100) してから getValue() すると 760 が返るはず
http://ideone.com/Z24LFA
http://ideone.com/Diod1I
http://ideone.com/x2goNr
http://ideone.com/do6fT9
new Price((120*2+80)*2+200) を作りたいわけではなくて
new Price(120) をデコって 840 を返させるのが Decorator
だからデコったあとに setValue(100) してから getValue() すると 760 が返るはず
http://ideone.com/Z24LFA
http://ideone.com/Diod1I
http://ideone.com/x2goNr
http://ideone.com/do6fT9
574デフォルトの名無しさん
2016/08/03(水) 11:21:17.97ID:nNt8IZmK575デフォルトの名無しさん
2016/08/03(水) 12:45:10.82ID:XBNCNfrP576デフォルトの名無しさん
2016/08/03(水) 15:55:24.00ID:8J75MUHP SmallTalkとか
577デフォルトの名無しさん
2016/08/03(水) 17:09:10.94ID:R0iPm5qU 関数型インターフェースの方が簡潔になる
http://ideone.com/6MAwKM
>>573
setValue(100)してからgetValueしたら100返らなきゃバグってるだろ
setOriginalValueとかに修正するところだな
http://ideone.com/6MAwKM
>>573
setValue(100)してからgetValueしたら100返らなきゃバグってるだろ
setOriginalValueとかに修正するところだな
578デフォルトの名無しさん
2016/08/03(水) 18:07:08.01ID:8J75MUHP Wikipediaにある
> Decorator パターンの方針は、既存のオブジェクトを新しい Decorator オブジェクトでラップすることである。
がわかってない奴がいるな
> Decorator パターンの方針は、既存のオブジェクトを新しい Decorator オブジェクトでラップすることである。
がわかってない奴がいるな
579デフォルトの名無しさん
2016/08/03(水) 18:17:54.35ID:qhbdc1zB デザパタの目的とされがちであるが
常に失敗しているのが語彙の共有
いつでもつねに認識がバラバラw
常に失敗しているのが語彙の共有
いつでもつねに認識がバラバラw
580デフォルトの名無しさん
2016/08/03(水) 18:21:38.71ID:8J75MUHP581デフォルトの名無しさん
2016/08/03(水) 18:45:37.19ID:9oohU77o582デフォルトの名無しさん
2016/08/03(水) 19:57:46.85ID:N9MmOijn Smalltalkに意味なんかないよ
登場してから30年とか40年とか経ってるのに
誰も現場で使ってない言語だからね
40年という歳月は結論を出すのに十分な時間だと思うよ
これから先もずっと使われないだろう
こんな言語についてあれこれ考えるのは時間の無駄だよ
御幣を恐れずに言うと、Smalltalkは間違っている、机上の空論
本当によくできていたなら、もうちょっとぐらい使われていてもおかしくない
少なくともRuby程度ぐらいには使われてないと話にならない
Smalltalkは実用にならないスジの悪い言語だということ
登場してから30年とか40年とか経ってるのに
誰も現場で使ってない言語だからね
40年という歳月は結論を出すのに十分な時間だと思うよ
これから先もずっと使われないだろう
こんな言語についてあれこれ考えるのは時間の無駄だよ
御幣を恐れずに言うと、Smalltalkは間違っている、机上の空論
本当によくできていたなら、もうちょっとぐらい使われていてもおかしくない
少なくともRuby程度ぐらいには使われてないと話にならない
Smalltalkは実用にならないスジの悪い言語だということ
583デフォルトの名無しさん
2016/08/03(水) 20:22:04.47ID:M+rE/wd/ Smalltalkは言語だけじゃダメで。
windows上では使い物にならないから仕方無い。
windows上では使い物にならないから仕方無い。
584デフォルトの名無しさん
2016/08/03(水) 20:23:22.86ID:M+rE/wd/ 要するに、windows自体がオブジェクト指向に向いてないんだよ。
585デフォルトの名無しさん
2016/08/03(水) 20:29:26.00ID:1jcdD/Xi 結論。
誰も Smalltalk なんて知らない www
誰も Smalltalk なんて知らない www
586デフォルトの名無しさん
2016/08/03(水) 20:32:04.15ID:N9MmOijn それは関係ない
なぜなら概念上の問題より運用上の問題のほうが大事だから
いくら概念的な素晴らしさを語ったところで
まともに運用できないならゴミ
使えない
なぜなら概念上の問題より運用上の問題のほうが大事だから
いくら概念的な素晴らしさを語ったところで
まともに運用できないならゴミ
使えない
587デフォルトの名無しさん
2016/08/03(水) 20:45:27.46ID:YtpqVXv4 >>574
> Javaではデコレータパターンを使う問題を
> デコレータパターンを使わずにより簡潔に記述した例。
お前は勘違いしているな。
デコレータパターンを実装しなさいというお題なんだから
それがデコレータパターンなんだよ。
Javaならこういう実装でやるが、他の言語では
その実装方法が違うだけ。
> Javaではデコレータパターンを使う問題を
> デコレータパターンを使わずにより簡潔に記述した例。
お前は勘違いしているな。
デコレータパターンを実装しなさいというお題なんだから
それがデコレータパターンなんだよ。
Javaならこういう実装でやるが、他の言語では
その実装方法が違うだけ。
588デフォルトの名無しさん
2016/08/03(水) 21:24:23.35ID:TE6NppPB589デフォルトの名無しさん
2016/08/03(水) 21:37:23.40ID:46yxFVyN シングルトンやアイテレーターなどは時代が変わっても重要だろうけど、
デコレーターは継承関係への依存度が高いから微妙だな。
デコレーターは継承関係への依存度が高いから微妙だな。
590デフォルトの名無しさん
2016/08/03(水) 22:46:55.08ID:PwtoF+FA >>583
Smalltalkは独自のGUIもそうだけれども、もうひとつ、通常のセルフホスティング
(自身で自身を記述)にとどまらず、処理系を構成する実行時オブジェクト群を
仮想イメージと呼ばれる、ある種のオブジェクトストアに永続化して次回起動時も
継続利用する運用スタイルも毛嫌いされるよね。個人的には示唆に富んでいて好きなんだけど
Smalltalkは独自のGUIもそうだけれども、もうひとつ、通常のセルフホスティング
(自身で自身を記述)にとどまらず、処理系を構成する実行時オブジェクト群を
仮想イメージと呼ばれる、ある種のオブジェクトストアに永続化して次回起動時も
継続利用する運用スタイルも毛嫌いされるよね。個人的には示唆に富んでいて好きなんだけど
591デフォルトの名無しさん
2016/08/04(木) 00:17:31.35ID:iDV12Qqy592デフォルトの名無しさん
2016/08/04(木) 00:19:01.73ID:jTAWnEUa > クロージャで実装しているのだから、
クロージャで "何を" 実装しているの?
クロージャで "何を" 実装しているの?
593デフォルトの名無しさん
2016/08/04(木) 00:24:24.39ID:ClPuKc3B デコレータパターンを実装できてはいないんだよw
これでわかった?w
これでわかった?w
594デフォルトの名無しさん
2016/08/04(木) 00:25:35.63ID:jTAWnEUa いや、何を実装したのかを聞いたんだが?
実装したものは何?
実装したものは何?
595デフォルトの名無しさん
2016/08/04(木) 00:30:18.03ID:ynLXOlFE >>590
あのあたりはむしろメモリや記憶装置いくらでも使える現代向けというか
過去にオブジェクト指向の要素をちょっとだけ輸入してみた中途半端なオブジェクト指向言語が次々出ては滅びの興亡続けてたのは
"コンパイル後のサイズが大きいじゃないか"とかいまじゃヘソが茶を沸かすような理由がメインなわけだし。
あのあたりはむしろメモリや記憶装置いくらでも使える現代向けというか
過去にオブジェクト指向の要素をちょっとだけ輸入してみた中途半端なオブジェクト指向言語が次々出ては滅びの興亡続けてたのは
"コンパイル後のサイズが大きいじゃないか"とかいまじゃヘソが茶を沸かすような理由がメインなわけだし。
596デフォルトの名無しさん
2016/08/04(木) 00:31:24.04ID:w6fnMNqO デコレータパターンと同等の機能をクロージャで実装した
じゃね?
同等の機能を持った違った実装があるのは当たり前じゃね?
デコレータパターンと同じような機能をもたらすけど
デコレータパターンじゃない実装は普通にあり得るんじゃね?
じゃね?
同等の機能を持った違った実装があるのは当たり前じゃね?
デコレータパターンと同じような機能をもたらすけど
デコレータパターンじゃない実装は普通にあり得るんじゃね?
597デフォルトの名無しさん
2016/08/04(木) 00:34:51.00ID:jTAWnEUaレスを投稿する
ニュース
- 橋下徹氏 外務省幹部の訪中受け「口だけ番長」へ痛烈指摘 「喧嘩は日本の完敗…なんとかっこ悪い日本か」 [冬月記者★]
- 【外国人問題】小野田紀美担当相「不法就労や不法滞在は許さない」 [シャチ★]
- 【野球】井端監督 大谷翔平、山本由伸らのWBCへの参加 「1日も早く返事ほしい」「待っててといっても、国内組が遅くなってしまう」★3 [冬月記者★]
- 経団連会長、日中は建設的対話を 経済3団体が高市首相と初会談も日中関係は話題に登らず… [BFU★]
- 中国で「クレしん」公開延期 対日報復、エンタメに波及 [蚤の市★]
- 東京株式市場 インバウンド関連株が下落 中国政府の渡航自粛要請で [バイト歴50年★]
- 有識者「高市総理が発言を撤回したり、辞職するしかないと言っている人は、それで日中関係が今まで通りになると思ってる?」 [834922174]
- 戦争は無くならないし殺人は起きるし女はレイプされるし子供は餓死するし
- ケンモメンが思うケンモメンの生態を述べるスレ [866936191]
- 中共は台湾を自分の領土と思ってるから外国が「侵略するな」と警告しても意味ないんだよね
- ( ´・ω・` )朝ですぞー
- 日経時間外、5万円割れ 垂直落下始まる [402859164]
