[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2ch.scのread.cgiへ]
Update time : 01/06 06:56 / Filesize : 295 KB / Number-of Response : 972
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

オブジェクト指向は愚かな考え。この世は計算式 ★3



1 名前:デフォルトの名無しさん mailto:sageteoff [2016/01/05(火) 02:10:25.72 ID:hJUQcrkl.net]
オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない。
https://twitter.com/ProgrammingMono/status/665702678006140928

研究グループは、血管新生注において血管が伸長する際の血管内皮細胞注運動を制御するしくみを、生物学と数理モデル・
コンピュータシミュレーションを融合させた先端的な研究手法により明らかにしました。

生物は、最小の機能単位である細胞が寄り集まった多細胞体です。しかし、細胞の集まりが、組織や器官といった
秩序ある形態や構造をつくり機能するしくみはほとんど分かっていません。中でも血管は、体中の全組織に十分な
酸素や栄養源を効率よく供給するため、組織や組織の間に入り込み、血管外の環境との相互作用により、巧妙な
枝分かれ構造をとっています。

これまでに本研究グループは、新しく血管がつくられる(血管新生)際の細胞の動きに着目し、特に血管内皮細胞の
動きをリアルタイムで可視化し、定量的に捉えることを可能にしてきました。

今回さらに、血管の伸長を制御するしくみについて、細胞が自発的に自らを制御して動く過程(自律的過程)と、
隣接した細胞から適宜影響を受けて動く過程(協調的過程)がうまく共存することで、全体の動きが巧みに統制
されていることを世界に先駆けて実証しました。

興味深いことに、血管内皮細胞が前後したり、お互いに追い抜きあったりという血管新生で見られる複雑な細胞集団の
動きを制御している中枢部分は、細胞一つ一つの動き(スピードと方向性)の「確率的な変化」として十分説明できる
ことをコンピュータシミュレーションで実証しました。
www.jst.go.jp/pr/announce/20151120-2/#YOUGO3

前スレ
オブジェクト指向は愚かな考え。この世は計算式 ★2
peace.2ch.net/test/read.cgi/tech/1450153388/

449 名前:デフォルトの名無しさん mailto:sage [2016/07/27(水) 06:58:14.97 ID:LCC7iz/I.net]
おまえ等の好きそうなネタ見つけた

オブジェクト指向で料理を例える場合,chicken.cut()かchef.cut()か
https://teratail.com/questions/41875

450 名前:デフォルトの名無しさん mailto:sage [2016/07/27(水) 07:29:08.70 ID:mL4CmQKe.net]
>>446
コーヒーの例は単純明快だからいいけど、美少女は実際に正しく設計できるやつが日本に何人いるかってレベルだろうな

451 名前:デフォルトの名無しさん mailto:sage [2016/07/27(水) 07:30:19.55 ID:+Qq3g4cQ.net]
>>448
これをジョークだと思って実戦に挑む奴がデスマーチを引き起こす

452 名前:デフォルトの名無しさん mailto:sage [2016/07/27(水) 07:32:08.18 ID:iBdKVqyS.net]
基底に近いほど修正しづらいのは事実

453 名前:デフォルトの名無しさん [2016/07/27(水) 07:33:05.82 ID:8lCNqFHq.net]
>>451
ほんとこれ

454 名前:デフォルトの名無しさん mailto:sage [2016/07/27(水) 09:54:15.05 ID:8yC4YC1p.net]
>>449
tokage.cut()

455 名前:デフォルトの名無しさん [2016/07/27(水) 12:23:59.26 ID:mW7SlT40.net]
くだらん与太話はこれくらいにしてそろそろ全力でウンコ美少女問題に取り組むか

456 名前:デフォルトの名無しさん [2016/07/27(水) 17:21:14.58 ID:8Owc4Qqf.net]
ウンコしない美少女は偶像
つまり人間からの派生ではない

457 名前:デフォルトの名無しさん mailto:sage [2016/07/27(水) 17:58:49.99 ID:CvwlEFOq.net]
なんか、いっつも同じレベルの書き込みするから
自演になってないって自覚しとる?きみ。



458 名前:デフォルトの名無しさん [2016/07/27(水) 19:55:41.64 ID:9bIrtjQt.net]
ユーザーはうんこなんて機能は求めて無いから削除しろよと

459 名前:デフォルトの名無しさん mailto:sage [2016/07/27(水) 20:16:04.55 ID:YbwWr11d.net]
人間がウンコするのは、
ユーザーが求めているからなのか?

460 名前:デフォルトの名無しさん [2016/07/27(水) 20:21:12.98 ID:9bIrtjQt.net]
ソフトの機能に不要な要素まで組み入れても誰も買わないだろ。
現実の要素を完全に網羅する必要は無いから

461 名前:デフォルトの名無しさん mailto:sage [2016/07/27(水) 21:23:16.38 ID:dkELqw5/.net]
それは当たり前のことではあるな
必要な要素だけ実装すればよいからな
Humanクラスがどういった要素を持つかは案件によるし
もし人の持つすべての機能をHumanクラスに実装できるっていうんなら
そのHumanクラスにプログラムも書いてもらえばよい

よって現実の人間がうんこをするからと言って
必ずしもHumanクラスにうんこをする機能が必要かどうかはわからないし
必要な案件に出会ってから美少女クラスのうんこの扱いについて考えればよい

462 名前:デフォルトの名無しさん mailto:sage [2016/07/27(水) 21:50:52.30 ID:eu5RKOJ4.net]
要件で一言も触れてないのに「はぁ?○○はあって当然だろ」とか言い出す顧客しかいないから
想像できるものは全て詰め込んでおく必要がある。
ウンコだろうとゲロだろうと例外はない。

463 名前:デフォルトの名無しさん mailto:sage [2016/07/27(水) 22:27:39.20 ID:YbwWr11d.net]
肝心なことを決めずに作り込んでいく。
美少女クラスのスーパークラスは人間クラスである。
排便メソッドは関係ないからそれでいい。
だが、ある時ユーザーからの要望で人間クラスに排便メソッドを作った。
人間だもの、当たり前だ。
それでいいと思った。その時がくるまでは。
ある時私は気がついた。
これだと美少女が排便すると www

464 名前:デフォルトの名無しさん [2016/07/27(水) 22:41:58.99 ID:60oYSks+.net]
このスレ的にはgo言語とかD言語のダックタイピングってどうなん?

465 名前:デフォルトの名無しさん mailto:sage [2016/07/27(水) 22:47:49.85 ID:rlINsgdh.net]
ダックタイピング

由来

アヒルのの鳴きマネをする人間はアヒルに違いない

466 名前:デフォルトの名無しさん [2016/07/28(木) 00:19:19.54 ID:c5ty+8F5.net]
ダッチワイフィング

由来

オランダの人妻はエロいに違いない

467 名前:デフォルトの名無しさん [2016/07/28(木) 00:47:19.73 ID:6VZFO4sX.net]
オブジェクト指向は幻想



468 名前:デフォルトの名無しさん [2016/07/28(木) 00:48:34.40 ID:/rI5OmsP.net]
COBOLからJavaへの移行で「実際に」成功した案件は存在しない

469 名前:デフォルトの名無しさん [2016/07/28(木) 00:49:15.93 ID:LhM4XtYR.net]
細胞から実装しろ

470 名前:デフォルトの名無しさん [2016/07/28(木) 00:49:41.59 ID:OYshXAPi.net]
元素から実装しろ

471 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 01:51:28.53 ID:y7xhJAs5.net]
>>468
COBOLって単なる言語じゃなくて運用まで含めたシステムの総称だからな。かなうわけがない
とは言え、高賃金のCOBOLプログラマーもいずれ死に絶えるわけでなんとかしないといけないんだけどさ
Adaなんか勉強して損した

472 名前:デフォルトの名無しさん [2016/07/29(金) 12:00:06.26 ID:TRgFQe5b.net]
Ocamlならあるいは

473 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 18:48:09.16 ID:POEPtDrt.net]
ないない
そもそもCが小文字の時点で語る資格なし

474 名前:デフォルトの名無しさん [2016/07/30(土) 00:08:52.44 ID:lNYXBi4+.net]
ならScalaでスイス銀行の例もあるし?

475 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:35:24.99 ID:gkAo/Cig.net]
具体的に

476 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 15:22:29.13 ID:OSfj7rnr.net]
オブジェクト指向を考え出した人間もオブジェクト指向の解釈を誤っていたのではないか
クラスというのは人間が直感的に思い描く世界の事物をプログラムコードにマップする手段ではなくて、
プロセスという大きなチューリングマシンの中の小さなチューリングマシンを記述する手段にすぎなかった
(チューリング完全性の利用例の一つだった

クラスのコンストラクタは状態機械であるところのチューリングマシンの初期化と生存期間の始まりに相当する
デストラクタは後始末と生存期間の終わり。
メソッドはチューリングマシンにlive timeを与え、計算を進めさせる。
そんだけ

状態(mutableなデータ)を含むから関数型プログラミングとは似て非なるものだし、
数学的にカタをつけるにはチューリングマシンの一変種で無限長の磁気テープをクラスで小分けにしたもの、
としか言い様が無い

477 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 15:46:36.80 ID:OSfj7rnr.net]
こう考えると継承のしくみを使ったプログラミングが
ごく一部のデザインパターンにおいてしか成功しないことも理解できる
継承というしくみのは人間が「こうだったらイイなあ…」と思い描いて作っただけで、
>>476な解釈からは必然性が出てこない
つまり継承というしくみは論理的妥当性を欠いており、
継承を下手に使ったらあちこちで矛盾が生じて話が発散していく傾向なのも仕方が無い



478 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 18:44:13.74 ID:TLvR+07H.net]
だいたいプログラミング業界って、

新しいものが導入される
→古いものはやめてこれ使いましょう
→新しいものも色々問題があることが分かってくる
→極力使わないようにしましょう

の繰り返しだからな。継承しかり例外しかり。
最近はテンプレート使いすぎなんじゃねーのって思うけど。

479 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 19:01:15.21 ID:TM2kAcv9.net]
> 継承しかり例外しかり。
継承も例外も極力使わないようにしましょうなんて
誰も言ってないが?

間違った使い方が明らかになって、
間違った使い方をしないで
正しい使い方をしましょう。

っていう結論ならばいつもそうなっている。
継承しかり例外しかり。

480 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 19:38:58.24 ID:XUUv9y4D.net]
結局、人間クラスと美少女クラスは
どうすればいいんだ?

481 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 20:02:32.96 ID:TLvR+07H.net]
>>479
正しく使おうってのは常に真だから内容が無いのと同じだな。
できるだけ使わないようにって風潮はある。程度の差はあれgotoとかと同じ。

482 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 20:08:02.92 ID:OEu/5F3U.net]
javaはオラクルがVMを提供しなくなったら
廃れるだろ。

483 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 21:52:18.63 ID:NYI5chEQ.net]
>>479
結局、言語の問題よりも馬鹿を入れない事のが重要ってことだろ。
そういう意味じゃ linus のやり方は正しいってことになる。

484 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 22:13:41.04 ID:TM2kAcv9.net]
>>481
> できるだけ使わないようにって風潮はある。
無いよそんなのwww

アルアル言っていても、
嘘がホントになったりしないアルよ〜w

485 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 22:18:10.45 ID:OSfj7rnr.net]
(定義が論理的に妥当でなかったりあいまいだったりするとお議論が紛糾する例

486 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 22:23:44.57 ID:3WJAVcau.net]
多少コピペが多くなっても継承をむやみに使ってはいけない場面ってのは想定しなきゃなぁ

487 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 22:38:52.82 ID:TM2kAcv9.net]
なんで継承をやめたらコピペが多くなるのかそれがわからんw

正しく継承使うといういうのは、
継承以外の方法を使うべきときに、違う方法を使うという意味であって、
ならばその違う方法で、コピペを回避すれば良いんだよ。



488 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 22:44:09.77 ID:XUUv9y4D.net]
委譲を使えばいいんだろ。
肛門クラスを作って、
人間クラスと美少女クラスのプロパティに肛門インスタンスを持てばいいんだ。
排便できる肛門と出来ない肛門と。

489 名前:デフォルトの名無しさん [2016/07/30(土) 23:06:52.83 ID:FiK/AfbE.net]
コーデングテクニックでごまかすのはアカンね
そーゆーことするから所謂ひとつのスパゲッテイー的ソースコードが出来上がるんや
デザインの問題はデザインで解決出来な一生炎上商法プログラマーのまんまやで

490 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 23:38:21.39 ID:3WJAVcau.net]
>>487
ミックスインの手法が確立されてないってことは、継承が害悪になる場面ってのはあるんだよ。

そういう場合は、下に書かれてる通り、コンポーネント的な設計が必要。
そういう時に、コンストラクタでコピペが必要ってこと。

491 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 23:41:35.20 ID:3WJAVcau.net]
そうするとインタフェースの定義が必要になってくるから、結局継承が楽だし、よほどのことじゃなければそれで済ませるんだけどね

492 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 00:01:52.81 ID:VGavY/X3.net]
if文ですべて解決できるんじゃね

493 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 00:35:50.52 ID:UuqrLdJE.net]
だから、委譲というか、
デリゲート使えっていうか。

494 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 01:44:59.39 ID:LD4Pss8J.net]
ほんと最近、is-a関係、has-a関係っていうの
軽視されてるよな。

is-aのときに継承すれば良いんだって
昔から言われてるんだが。
これは古い概念じゃないぞw

495 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 03:56:26.93 ID:Wl4/o5Bb.net]
フリーザは美少女クラスのis-a関係

496 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 09:04:47.96 ID:xuMLlix3.net]
>>494
is-a関係は一般に存在しない
例外なのは同値関係と包含関係が数学的に定義できて無矛盾性が担保された
(=直接証明されたか、より一般的な体系の無矛盾性に帰着できる)ケースだけだが
そんなのはスゲーまれ
いっぱいあると感じるのは錯覚

不用意にis-a関係を導入することでクラス分けにあいまいさが紛れ込み、
プログラムの設計とか簡単に壊滅する

497 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 09:09:00.42 ID:xuMLlix3.net]
その点ha-a関係はやりやすいなぜなら単なる集約であって分類が絡まないから
has-a関係の導入自体が矛盾を生じることは無いからだ



498 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 09:36:24.74 ID:tLh0Iyun.net]
is-a関係だと思っているものは全てhas-aとしても実装できる。

概念系統が複数ある場合、is-aでは多重継承もしくは、
全ての組み合わせの派生クラスを定義することが必要だが、
has-aではそういう問題は無く柔軟に設計できる。

499 名前:デフォルトの名無しさん [2016/07/31(日) 09:41:31.16 ID:/E3bqgob.net]
OO使わない場合に
フラグとかカウンタとかステータスってのをどう管理するのかを
単刀直入に知りたい。
関数型なんかでもこの辺がよくわからない
(消せるはずはないから何か別の概念などで整理・管理されるんだとは思うけど)

500 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 09:46:59.05 ID:tLh0Iyun.net]
>>499
普通の構造体でいいのでは?(Cでいうところの)

501 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 09:59:49.33 ID:p/Oh4nGe.net]
>>499
そこでクロージャですよ

502 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 10:00:24.80 ID:P4D/j0eN.net]
is-a だったらliskov置換原則の方が理解し易いし、コード書くときの指針になる。

503 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 10:09:28.04 ID:xuMLlix3.net]
ちなステータスというのは大概I/Oを通じて外界と繋がっている事物の結果を意味し、
実時間軸上でうつろうもの(mutableなブツ)なので厳密には関数型プログラミングに存在し得ない概念

関数型プログラミングでは「1」を返す関数と、和を返す関数から「1」+「1」=「2」という演繹ステップを経て
「2」を返す関数を作る、というように演繹ステップとしての時間経過しか扱わない
これでどうやって実時間で動くシステムをプログラムするのかというと、
演繹ステップの順序と実時間軸上の物事の変化順序が一致するように関数を設計してやって、
擬似的に演繹順序を実時間軸上の順序と合わせてそれっぽい動きを実現しているわけや

例えばHDDのエラーステータスとか、昨日のステータスに対し今日のステータスが変化した、と捉えるのではなしに、
「HDDの昨日のステータス」を返す関数と、ステータスの適切な処理に対応する何がしかを返す関数とから
「HDDの今日のステータス」に対する処理に対応する何がしかを返す関数を生成する
ことでHDDの今日のステータスを処理する

504 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 11:53:00.79 ID:LD4Pss8J.net]
>>494
女は一般に存在しない
いっぱいあると感じるのは錯覚

って言ってるようなもんだなw

一般に存在しないというのなら
存在しないと言う根拠を書け

505 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 13:06:04.94 ID:xuMLlix3.net]
>>504
is-a関係は一般には存在しないと書いたのじゃ
例えば妻クラスを女クラスの派生クラスにしたりしたら、同姓婚が合法化されたときプログラムは作り直しになるであろう
また、なんで女クラスの派生クラスが妻クラスではいけないのか?その根拠を目下人類は手にしていない
はい論破

ちな、有限集合に関しては無矛盾性は常に証明できるから別に
 女クラス←妻クラス
でも
 妻クラス←女クラス
でも良いが、有限のケースしか想定しないんならswitch文で良いやという話で
オブジェクト指向の出る必然性がかなり減る
あくまで無限集合としてのクラスXを今数学的に正しく定義付けできるか?(X=妻 or 女 or so on)というのが問題

506 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 15:57:24.63 ID:Wl4/o5Bb.net]
is-aかどうかなんて抽象的すぎて判断の材料になんないよな。

何を持ってしてis-aとするかが大事なんだけど、そこをきちんと答えられる人は少ない。

507 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 15:58:19.37 ID:JthY0EmQ.net]
>>505
そりゃ妻のような一時的な属性に過ぎないものををクラス化するのがそもそも間違ってる
同性婚以前に結婚離婚で既に破綻してるじゃないか
例が悪いので説明になってない、やり直し



508 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 16:07:11.65 ID:Wl4/o5Bb.net]
>>507
男も改造すれば女になりうるから、男クラスのインスタンスを作ると、参照を維持したまま女クラスに変身できない。

だから、is-aなんてものは、性転換をしないという契約がなければなりたたない。

契約をしてないのにis-aなんて言いきれる訳ない。

509 名前:デフォルトの名無しさん [2016/07/31(日) 16:07:23.65 ID:kxVM21o1.net]
妻とか女とか、単なる属性をクラスにするからワケが分からなくなる。

510 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 16:27:16.51 ID:iFqDH3lg.net]
いいから、肛門クラスを作って
デリケートしろ!

511 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 16:35:53.61 ID:Wl4/o5Bb.net]
口に肛門つけてください。
しゃべれるしうんこできるし便利だと思うんです。

512 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 21:22:59.29 ID:XDiDpvFC.net]
話についていけない子が
必死で面白レスしようとするのが悲痛
人間の悲しみが透けて見える

513 名前:デフォルトの名無しさん mailto:sage [2016/08/01(月) 00:44:08.60 ID:E1waX2Jm.net]
>>505
> 例えば妻クラスを女クラスの派生クラスにしたりしたら、同姓婚が合法化されたときプログラムは作り直しになるであろう

ならないなw
お前設計がおかしいよ。

妻をクラスするって発想がそもそも
キチガイじみてる。

514 名前:デフォルトの名無しさん mailto:sage [2016/08/01(月) 00:46:25.46 ID:E1waX2Jm.net]
普通は性別は属性だよなw

人クラスがあって、名前・年齢・性別
ほら属性だ。

そのうち佐藤クラスを作るとか言いそうだwwww

515 名前:デフォルトの名無しさん mailto:sage [2016/08/01(月) 00:52:22.69 ID:E1waX2Jm.net]
is-a関係っていうのは必要条件であって十分条件じゃないんだがw
is-aになっていれば必ず継承関係にあるってことじゃない。
継承しようと思ったとき、is-a関係を満たしていなければいけないって話だ。

516 名前:デフォルトの名無しさん mailto:sage [2016/08/01(月) 01:01:45.57 ID:8BzY1j1Y.net]
オブジェクト指向ってどこで間違ったんだろう
途中までは良い線行ってたと思うんだけど、どこからか使いものにならなくなったよね

517 名前:デフォルトの名無しさん mailto:sage [2016/08/01(月) 01:04:20.06 ID:E1waX2Jm.net]
オブジェクト指向が使われてない
フレームワークなんて無いんだが?

使い物にならなくなったという考えがそもそも間違いだな。

まあ「使い物にならなくなった」と言い続けることで
他の人に事実だと錯覚させようとする手段ニダ?w



518 名前:デフォルトの名無しさん mailto:sage [2016/08/01(月) 01:06:05.40 ID:fJ4xvUon.net]
だから、継承捨てて委譲を使えっての!

519 名前:デフォルトの名無しさん mailto:sage [2016/08/01(月) 01:41:20.92 ID:C6PCKyxq.net]
>>517 本当にオブジェクト指向が必要だから使っているのか、
抽象化の手段がオブジェクト指向しか無いから使わざるをえないのか

昨今の言語なら継承以外の方法で抽象化とか再利用とかできたりする
OOは本当に最小限にして、late bindingやメッセージパッシングの妙を際立たせるとより効果的
Real World OCamlだとヘテロな型を持つ木構造を探索するのに使ってたりしたな

520 名前:デフォルトの名無しさん mailto:sage [2016/08/01(月) 01:41:37.76 ID:E1waX2Jm.net]
継承捨てて委譲を使えっていうのは
マイクロソフト用語でコンポーネント指向っていうんだが、
これを意図的に取り入れたのが2000年前後に使われていたVB6なんだよな。

そのVB6も.NETになってから継承をサポートしたし、
コンポーネント指向だけではだめだということだろう。

521 名前:デフォルトの名無しさん mailto:sage [2016/08/01(月) 01:43:39.68 ID:E1waX2Jm.net]
>>519
オブジェクト指向は必要だから使うんじゃなくて
いくつもある手段の中から一番適切だから使うんだよ。

お前が例示する使い方は、単にオブジェクト指向じゃないほうが
適切だってだけ。そしてオブジェクト指向が適切だから
ほとんどのフレームワークでオブジェクト指向が使われている。
他に代替技術があるにもかかわらずだ。

522 名前:デフォルトの名無しさん mailto:sage [2016/08/01(月) 02:44:42.52 ID:6ITirnPy.net]
>>513
だからその設計はねーってこと言ってるんだろ。

日本語読めないの?

523 名前:デフォルトの名無しさん mailto:sage [2016/08/01(月) 03:09:46.97 ID:FN/zaXKS.net]
>>516
>どこからか使いものにならなくなったよね
C++の奇形めいたオブジェクト指向は衰退して
別方面で進化してきたObjecive-CとJavaが本流として
いま街でみかける全てのスマホアプリを支えてるけどな。

524 名前:デフォルトの名無しさん mailto:sage [2016/08/01(月) 03:31:24.59 ID:cj2k2Gm/.net]
今はObjrctive-CじゃなくてSwiftじゃね?

525 名前:デフォルトの名無しさん mailto:sage [2016/08/01(月) 04:29:03.24 ID:C6PCKyxq.net]
>>521 適切だから使うというなら何故デザインパターンなんて出てきたのか?
デザパタの大部分がOOに適さない問題を無理矢理OOで解決するためのもので、
他の手段が使える言語なら間違いなく採用しない

他にもExpression ProblemをJavaで解決しているのとOCamlで解決しているのを比較してみるといい
OOだと論文書けるくらいには面倒な方法があるけど、OCamlのVariant使った方法と比べて圧倒的に可読性と簡潔さに劣っている

526 名前:デフォルトの名無しさん mailto:sage [2016/08/01(月) 06:27:47.87 ID:c5RAbFYM.net]
JavaはC++よりレガシーな言語になってしまったが…

527 名前:デフォルトの名無しさん mailto:sage [2016/08/01(月) 09:36:21.09 ID:E1waX2Jm.net]
>>525
> デザパタの大部分がOOに適さない問題を無理矢理OOで解決するためのもので、

違う。OO便利だなーって使っているうちに
設計のアルゴリズムが確立されていって、
それをまとめたのがデザパタ



528 名前:デフォルトの名無しさん [2016/08/01(月) 10:06:54.28 ID:Q0J3uZmP.net]
いや、デザパタはOOと関係無いから。
関係あるのはOOPの方

529 名前:デフォルトの名無しさん [2016/08/01(月) 10:50:43.99 ID:pyyhbxGP.net]
【閲覧注意】戦闘に巻き込まれて頭部を切断された少女の遺体。これがリアルなシリア。
dqnworld.com/archives/34.html
これが本当の戦争の恐怖。この少女には大人の戦争は関係ないですからね。巻き込まれた少女の遺体を持って何か
を訴えかけている男たちの映像です。

【閲覧注意】シリアで反体制派の兵士が顔を吹き飛ばされてしまう瞬間。
dqnworld.com/archives/89.html
スローモーションが怖すぎる・・・。

【閲覧注意】アッラーフアクバルを叫びながら少年を斬首する映像を公開する。
dqnworld.com/archives/3975.html
点滴?のようなものが見えるんだけど。助けられた少年じゃなかったのか。助けられた所を強奪されてアッラーフ
アクバル?なのかしら・・・。

【閲覧注意】磔にされた戦闘機パイロットの遺体。シリアにて。
dqnworld.com/archives/3996.html
今日のアッラーフアクバル動画。

妻の目の前でぶっ飛ばされた旦那さん?これは死んだかな(°_°)
dqnworld.com/archives/4004.html
さすがにこれだけ飛ばされたら助からないかな・・・。

【閲覧注意】あおむけでゲロを吐きまくっている男性。助けてやれよ・・・。窒息するぞ(@_@;)
dqnworld.com/archives/4007.html
これ結構危ないんじゃないの?撮影してないで横向きにしてやれよ。これ窒息する可能性あるだろ。

衝撃映像。事故って大回転した車から少女がポロリ。
dqnworld.com/archives/4013.html
この少女がどうなったのかが気になる所ですが動画の説明には何も書かれていなかった・・・。

530 名前:デフォルトの名無しさん mailto:sage [2016/08/01(月) 10:52:18.11 ID:IZIdUKpU.net]
ここまでLSPの話題なし

531 名前:デフォルトの名無しさん mailto:sage [2016/08/01(月) 17:10:00.57 ID:GD9lEFl6.net]
>>525
> デザパタの大部分がOOに適さない問題を無理矢理OOで解決するためのもので、

おしい。
デザパタはJavaやC++に適さない問題を無理やりJavaやC++で解決するためのもので、
SmalltalkやSelfで書けば圧倒的に簡潔かつ明瞭に記述できる。

532 名前:デフォルトの名無しさん mailto:sage [2016/08/01(月) 18:06:20.18 ID:99zq/hjd.net]
smalltalk だと、人間クラスと美少女クラスの問題は
どう解決するの?

533 名前:デフォルトの名無しさん mailto:sage [2016/08/01(月) 20:14:16.64 ID:NIKdUbwx.net]
Squeak Smalltalk だと、こんな感じか?

Object subclass: #人間
  instanceVariableNames: 'もろもろ'
  classVariableNames: ''
  poolDictionaries: ''
  category: '美少女-排便'.

人間 compile: '排便 ^#便'.

Trait named: #美少女 uses: #() category: '美少女-排便'.

美少女 compile: '排便 self notify: ''トイレには行きません''. ^#プリン'.

おまえら := 人間 new.
おまえら 排便. "=> #便 "

橋本環奈 := 人間 new.
橋本環奈 assureUniClass class uses: 美少女.

橋本環奈 排便. "Warning: トイレには行きません => #プリン"

534 名前:デフォルトの名無しさん mailto:sage [2016/08/01(月) 20:39:01.26 ID:E1waX2Jm.net]
>>531
> SmalltalkやSelfで書けば圧倒的に簡潔かつ明瞭に記述できる。

例えば、どのパターンが簡潔明瞭に記述できるの?
一番簡単なパターンでいいので書いてみて。

考えるのが面倒なら俺が出題しても良い?
Singletonは個人的につまらないので
そうだね、DecoratorはSmalltalkやSelfで書いたらどうなる?

535 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 00:07:55.94 ID:6KXXOitA.net]
>>534
試しにウィキペの Decorator パターン
https://ja.m.wikipedia.org/wiki/Decorator_パターン

にある例を Smalltalk で書いてみた
ideone.com/Y1WAxY

けど、圧倒的に簡潔になった感じはしないな
>>531 ならどんなふうに書く?

536 名前:デフォルトの名無しさん [2016/08/02(火) 00:11:39.50 ID:xLK/JaT/.net]
シングルトンなんて言語に最初から組み込んでおけ(Scala信者並感)

537 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 00:40:29.48 ID:Aujbapgh.net]
>>532
そもそもきみは継承関係=オブジェクト指向でしか発想してないから
クソ邪魔くさい継承取っ払ってモジュール自由に組み外しできるタイプの
オブジェクト指向の話にまったくついてこれてないからずっと嗤われてるわけで。



538 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 00:44:39.63 ID:flPsn8Jo.net]
>>535
別にDecoratorじゃなくていいんだけどね。
圧倒的に簡潔かつ明瞭に記述できるっていってるから
そのコードを見たいだけ。

539 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 05:55:14.53 ID:wOSsX6OQ.net]
デコレータパターンはそもそも静的に型がつけられることからくるクラス階層への制約を誤魔化すための小手先の技術でしかない。
型が完全に動的なSmalltalkやSelfではデコレータパターン自体が不要。

540 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 10:26:45.37 ID:KjBiyzhL.net]
型が動的だと>>535の例のようなコードはどうなるの?

541 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 10:29:15.63 ID:YMxtX/GD.net]
そそ
例えばアセンブリや機械語は制約がないからデコレータパターンとか要らないでしょ
それと同じでSmalltalkには何も必要ないよ

542 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 13:11:20.31 ID:KCBRtMku.net]
全然違うのだが。デコレータもSmallTalkも理解してないとみた。

543 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 13:40:40.79 ID:C0zGukRC.net]
アセンブリというかC言語だとこんな感じか。出来るには出来るけどちょっとねえ
codepad.org/XgRtJlQb

544 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 15:34:07.46 ID:lROFhaXh.net]
なにも知らなくても語れる。
それが Smalltalk のいいところらしい。
人間の悲しさがほの見えるな・・・

545 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 16:01:47.58 ID:wOSsX6OQ.net]
>>540
Smalltalkはよくわからないけど、
DoublePriceとかWholesalePriceとかいうクラスを増やすより、
元値から実売価格を計算するクロージャを持たせるんじゃないかなあ。
SmalltalkのPluggableMVCとかもクロージャで柔軟な変換を実装しているし。

546 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 16:53:22.92 ID:I0xQlCpI.net]
>>545
> 元値から実売価格を計算するクロージャを持たせるんじゃないかなあ。

こんなんでどうですかね?
ideone.com/d8iLSE

ついでにRuby版も書いてみた
ideone.com/WW8gva

547 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 17:16:35.65 ID:I0xQlCpI.net]
>>543
これだと Java 版でいうところの getValue() する前に
毎回、二倍にして 利益80乗せて、また二倍にしてもう一度 利益200乗せて…とかって
いちいち書かないと 840を返せないから、結果は合っているけど要求仕様を満たしていないような気がする



548 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 18:25:05.78 ID:lROFhaXh.net]
いつになったら、
人間クラスと美少女クラスの問題に辿りつけるのかね?
悲しいの〜。

549 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 20:24:15.92 ID:wOSsX6OQ.net]
>>548
とっくに解けてるじゃん
ばか?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<295KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef