オブジェクト指向は愚かな考え。この世は計算式 ★3©2ch.net (961レス)
1-

21: デフォルトの名無しさん [] 2016/01/06(水)11:15 ID:nQqbz+/u(1/3)
メソッドに何かやらせるのはやめて全て物理演算で動作を決めるべき
22: デフォルトの名無しさん [] 2016/01/06(水)11:19 ID:dAXQ+tnq(1)
コンピュータ内でシミュレートするのではなく実際の分子原子を用いるべき
23: デフォルトの名無しさん [sage] 2016/01/06(水)11:34 ID:KjcuT4OL(1)
そんなことしたら分子原子の仕様変更で全てがひっくり返るぞ
24: デフォルトの名無しさん [] 2016/01/06(水)11:54 ID:nQqbz+/u(2/3)
メソッドコールのかわりにオブジェクトに対するフォースとトルクを搭載した言語を作ればいい
25
(2): デフォルトの名無しさん [] 2016/01/06(水)11:57 ID:nQqbz+/u(3/3)
>>13
これ、どう表現すべきなのか?
26
(1): デフォルトの名無しさん [sage] 2016/01/06(水)12:01 ID:QNndC4zW(2/2)
beDrank, beRefilledにかえればいいだけだろ。
27
(1): デフォルトの名無しさん [sage] 2016/01/06(水)12:26 ID:HvQ48C0N(1)
>>25
drinkに渡すのはcup.contentsとかにする?
28: デフォルトの名無しさん [sage] 2016/01/06(水)13:44 ID:ZUCJrGIg(1)
>>4は一般的なコーヒーのモデル化じゃなくて
コーヒーの消費が常態化したマの皮肉じゃないの
最後にコメント付いてるし
29: デフォルトの名無しさん [] 2016/01/06(水)21:55 ID:kAnzyWXR(1)
オブジェクト指向は無理
30: デフォルトの名無しさん [] 2016/01/06(水)21:55 ID:zRcw+KQb(1)
まったく直感的ではないな
31: デフォルトの名無しさん [] 2016/01/06(水)21:56 ID:fWGpYiip(1)
こうしてクソみたいなソースコードが溢れた
32: デフォルトの名無しさん [] 2016/01/06(水)21:57 ID:ljmmccCR(1/2)
>>25-27
こんな議論になる時点でオブジェクト指向はヤバいだろ
33: デフォルトの名無しさん [] 2016/01/06(水)21:58 ID:ljmmccCR(2/2)
>>2
死ね
34: デフォルトの名無しさん [] 2016/01/06(水)22:00 ID:vTtwKBx3(1)
>>9
そこまでしてオブジェクト指向にこだわる意味がわからない。
そんなもんperlやrubyのワンライナーですませろよ
35: デフォルトの名無しさん [sage] 2016/01/07(木)00:25 ID:idw/W9gn(1)
オブジェクト指向も結局はコミュニケーションというか
メソッド(関数)指向という方が正しい。
結局はメソッド(関数)をどのように呼ばれるか、まとめられるかってことだから。
36
(1): デフォルトの名無しさん [sage] 2016/01/07(木)01:03 ID:Spe75WNW(1/2)
メソッドは関数ではない
メソッドとは特定のオブジェクトにのみ適用可能な手続きであり、
関数とは特定のオブジェクトに依存しないものである
特に純粋関数は状態にも依存せず、参照等価性が成り立つものである

ところでオブジェクトが状態を持たず、メソッドを持たなければ、
それは単なるデータ(例えばハッシュマップ)と同じである
従ってオブジェクトというものは状態、及びメソッドの存在を暗示している

オブジェクト志向とは全てのものを変更可能なデータ(言い換えればエンティティ)とメソッドで表そうという観念である
関数型はそれに反して極力多くのものを変更不可能なデータ(値)と関数で表そうとする
ここの話はいわゆるドメイン駆動設計にも絡んでいる

どちらが、現実世界の捨象に有用であるかということが問題なのである
37
(2): デフォルトの名無しさん [sage] 2016/01/07(木)01:15 ID:Spe75WNW(2/2)
オブジェクト志向で実装可能なことは、原理的に関数型でも実装可能であり
関数型で実装可能なことは原理的にオブジェクト志向でも実装可能なはずである

関数はオブジェクト志向においては、staticクラスを使えば実装できる
メソッドは関数型においては、第一引数によって動作を変更するポリモーフィズムとして実装できる

問題はどちらが汎化に適しているかということなのである
関数型にはオブジェクト指向では綺麗に実装できない麗としてマルチメソッドというものがある
これは第一引数及び第二引数+・・・の型を持ってして動作を変更するという技であるが、
特定のオブジェクトに依存しているオブジェクトにおいてはこれはif文を内包したディスパッチをする他に実装する方法はないだろう

一方staticクラスによる関数のパッケージ化は煩雑である
必要な関数だけをインポートするには、その関数を内包したstaticクラスをインポートする必要がある
もしここで厳密なカプセル化を適用するならば、
1つの関数のために1つのクラスを使う必要がある、さもなくば利用可能でない関数も同時にインポートしてしまう

カプセル化もまた、オブジェクト志向の特権ではないのである
関数型は関数をカプセル化しているのである
そして変数のカプセル化もまたクロージャで実装できる

オブジェクト志向での変数のカプセル化は容易ではあるが、本当に変数はカプセル化されるべきか
それが私の問いなのである
38: デフォルトの名無しさん [sage] 2016/01/07(木)01:40 ID:6wDD5ILY(1)
>>37
その問いにおける「変数」とは状態のことであるから、
それは構造化・カプセル化によってアクセス制限されるべきなのは明らか。
39: デフォルトの名無しさん [] 2016/01/07(木)02:02 ID:EDvZlrKk(1)
>>1>>4
結局のところ、この問題に誰もが納得するシンプルな回答を示せない奴が設計するからデスマーチになるんだろ。
40: uy ◆Qawu9.2l1E [sage] 2016/01/07(木)03:17 ID:VBUUQOGk(1)
自分も参加してるプロジェクトでデスマが起こるなら多分自分にも原因があるんだと思うよ
1-
あと 921 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.018s