オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない。
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
482デフォルトの名無しさん
2016/07/30(土) 20:08:02.92ID:OEu/5F3U javaはオラクルがVMを提供しなくなったら
廃れるだろ。
廃れるだろ。
483デフォルトの名無しさん
2016/07/30(土) 21:52:18.63ID:NYI5chEQ484デフォルトの名無しさん
2016/07/30(土) 22:13:41.04ID:TM2kAcv9485デフォルトの名無しさん
2016/07/30(土) 22:18:10.45ID:OSfj7rnr (定義が論理的に妥当でなかったりあいまいだったりするとお議論が紛糾する例
486デフォルトの名無しさん
2016/07/30(土) 22:23:44.57ID:3WJAVcau 多少コピペが多くなっても継承をむやみに使ってはいけない場面ってのは想定しなきゃなぁ
487デフォルトの名無しさん
2016/07/30(土) 22:38:52.82ID:TM2kAcv9 なんで継承をやめたらコピペが多くなるのかそれがわからんw
正しく継承使うといういうのは、
継承以外の方法を使うべきときに、違う方法を使うという意味であって、
ならばその違う方法で、コピペを回避すれば良いんだよ。
正しく継承使うといういうのは、
継承以外の方法を使うべきときに、違う方法を使うという意味であって、
ならばその違う方法で、コピペを回避すれば良いんだよ。
488デフォルトの名無しさん
2016/07/30(土) 22:44:09.77ID:XUUv9y4D 委譲を使えばいいんだろ。
肛門クラスを作って、
人間クラスと美少女クラスのプロパティに肛門インスタンスを持てばいいんだ。
排便できる肛門と出来ない肛門と。
肛門クラスを作って、
人間クラスと美少女クラスのプロパティに肛門インスタンスを持てばいいんだ。
排便できる肛門と出来ない肛門と。
489デフォルトの名無しさん
2016/07/30(土) 23:06:52.83ID:FiK/AfbE コーデングテクニックでごまかすのはアカンね
そーゆーことするから所謂ひとつのスパゲッテイー的ソースコードが出来上がるんや
デザインの問題はデザインで解決出来な一生炎上商法プログラマーのまんまやで
そーゆーことするから所謂ひとつのスパゲッテイー的ソースコードが出来上がるんや
デザインの問題はデザインで解決出来な一生炎上商法プログラマーのまんまやで
490デフォルトの名無しさん
2016/07/30(土) 23:38:21.39ID:3WJAVcau >>487
ミックスインの手法が確立されてないってことは、継承が害悪になる場面ってのはあるんだよ。
そういう場合は、下に書かれてる通り、コンポーネント的な設計が必要。
そういう時に、コンストラクタでコピペが必要ってこと。
ミックスインの手法が確立されてないってことは、継承が害悪になる場面ってのはあるんだよ。
そういう場合は、下に書かれてる通り、コンポーネント的な設計が必要。
そういう時に、コンストラクタでコピペが必要ってこと。
491デフォルトの名無しさん
2016/07/30(土) 23:41:35.20ID:3WJAVcau そうするとインタフェースの定義が必要になってくるから、結局継承が楽だし、よほどのことじゃなければそれで済ませるんだけどね
492デフォルトの名無しさん
2016/07/31(日) 00:01:52.81ID:VGavY/X3 if文ですべて解決できるんじゃね
493デフォルトの名無しさん
2016/07/31(日) 00:35:50.52ID:UuqrLdJE だから、委譲というか、
デリゲート使えっていうか。
デリゲート使えっていうか。
494デフォルトの名無しさん
2016/07/31(日) 01:44:59.39ID:LD4Pss8J ほんと最近、is-a関係、has-a関係っていうの
軽視されてるよな。
is-aのときに継承すれば良いんだって
昔から言われてるんだが。
これは古い概念じゃないぞw
軽視されてるよな。
is-aのときに継承すれば良いんだって
昔から言われてるんだが。
これは古い概念じゃないぞw
495デフォルトの名無しさん
2016/07/31(日) 03:56:26.93ID:Wl4/o5Bb フリーザは美少女クラスのis-a関係
496デフォルトの名無しさん
2016/07/31(日) 09:04:47.96ID:xuMLlix3 >>494
is-a関係は一般に存在しない
例外なのは同値関係と包含関係が数学的に定義できて無矛盾性が担保された
(=直接証明されたか、より一般的な体系の無矛盾性に帰着できる)ケースだけだが
そんなのはスゲーまれ
いっぱいあると感じるのは錯覚
不用意にis-a関係を導入することでクラス分けにあいまいさが紛れ込み、
プログラムの設計とか簡単に壊滅する
is-a関係は一般に存在しない
例外なのは同値関係と包含関係が数学的に定義できて無矛盾性が担保された
(=直接証明されたか、より一般的な体系の無矛盾性に帰着できる)ケースだけだが
そんなのはスゲーまれ
いっぱいあると感じるのは錯覚
不用意にis-a関係を導入することでクラス分けにあいまいさが紛れ込み、
プログラムの設計とか簡単に壊滅する
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:9oohU77oレスを投稿する
ニュース
- 習政権、高市首相への態度硬化 台湾有事発言で連日非難 中国 ★11 [ぐれ★]
- 日本損失1.7兆円に修正 中国渡航自粛の影響試算 [蚤の市★]
- 国内ホテル、既にキャンセルも 訪日客関連業界、事態見守る ★3 [蚤の市★]
- 「どうしようもない」 ため息つくアジアの玄関口 中国の訪日自粛で−福岡市 [蚤の市★]
- 【芸能】奇跡の53歳!元おニャン子クラブB組・山崎真由美、32年ぶりグラビア披露&8ページ袋とじ [湛然★]
- 決め手は地名「西彼杵」を読めず…とっさの判断でニセ電話詐欺だと見抜いた女性に感謝状 [蚤の市★]
- 【実況】博衣こよりのえちえち朝こよ🧪 ★2
- 【実況】博衣こよりのえちえち朝こよ🧪
- 【超悲報】中国への武力行使、世論調査で「賛成」「どちらかといえば賛成」48.8% 「反対」「どちらかといえば反対」の44.2%を上回る [314039747]
- 中国「高市が頭を下げて謝罪しない限り、絶対に許さない」 [329329848]
- 【超絶悲報】日本政府「高市さんの答弁撤回はない。政権として弱腰と映る姿勢は見せられない」これもう立憲岡田の議員辞職しかないだろ [519511584]
- お前らってよく仮想の敵作って叩いてるけどこれって実は素晴らしいことだよな
