[表示 : 全て 最新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/

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
とっくに解けてるじゃん
ばか?

550 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 20:30:55.27 ID:lROFhaXh.net]
どう解けてるんだよ。
人間の肛門と天使の肛門にコンポーネントするのか?

551 名前:デフォルトの名無しさん [2016/08/02(火) 20:41:47.88 ID:UCo4tbLK.net]
用途も分からず闇雲に現実世界をクラス化して行ったら、一生掛かっても終わらないから無駄な事すんな。

552 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 20:42:03.85 ID:9rM4/wP9.net]
美少女は偶像であり人間ではない

553 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 20:57:34.64 ID:flPsn8Jo.net]
もうそろそろいいかな?

みんな「デコレーターパターン」をどうするか?というテーマで
会話が成り立ってるよね?

つまりこういうことさ。デザインパターンっていうのは用語。
実装じゃない。

デコレーターパターンをJavaならこう書く、SmallTalkならこう書くと
いうふうに共通認識ができてる。これこそデザインパターンの有用な所。

だからコードの書き方が決まってるわけじゃないんだよ。
設計だからね。言語が決まらない状態であっても話はできる。

デザインパターンをどういうふうに書くかってのは例でしか無いんだよ。
目的を達成できるならどう書くてもいいし、デコレータパターンを
どう書いてもそれはデコレータパターンなのさ。

SmallTalkであってもデコレーターパターンっていうのは存在する。
だからこそSmallTalkでデコレータパターンをシンプルに書くことができる!と
主張できる。

554 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 21:16:53.04 ID:LOKS06K+.net]
>>553
なんでみんなより二歩も三歩も手前な意見を
そんな長文で書き込めるの?



555 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 21:20:29.76 ID:flPsn8Jo.net]
>>554
言いたいことはそれだけかw

556 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 21:22:05.73 ID:LOKS06K+.net]
ごめんね

557 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 21:24:18.11 ID:e9gYPknx.net]
Smalltalk の t を大文字で書くやつは無知か知ったかぶり

558 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 21:24:35.32 ID:lROFhaXh.net]
実は誰も Smalltalk なんて知らない www

559 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 21:27:22.36 ID:flPsn8Jo.net]
反論あるなら待ってるよw

560 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 21:32:29.72 ID:LOKS06K+.net]
>>557
ワロタw

561 名前:デフォルトの名無しさん [2016/08/02(火) 21:38:39.55 ID:UCo4tbLK.net]
言語は関係無いと言う内容の話への反論が、言語名のミスプリントの指摘とか、レベル低過ぎだろw
小学生の負け惜しみかよw

562 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 21:39:26.48 ID:flPsn8Jo.net]
>>561
え?それ反論だと思ってたの?
反論はまだ一つも来てませんよw

563 名前:デフォルトの名無しさん [2016/08/02(火) 21:40:28.47 ID:UCo4tbLK.net]
うゎw
保育園だなここはw

564 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 21:47:57.27 ID:6KXXOitA.net]
>>561
「プリント」とかまさに小並



565 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 22:08:58.16 ID:e9gYPknx.net]
>>553
>>538で「見たいだけ」って言ってるところをみると、これは反語で
>>546みたいに簡潔なのが出てくるとはこの時点では考えてなかったんじゃない?
だからデザパタは用語で実装じゃない、言語は関係ないって趣旨替えしたように読むのは穿ちすぎ?

566 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 22:14:56.76 ID:flPsn8Jo.net]
>>565
いやw
最初からこのために、
デコレータパターンをSmallTalkで書いたらどうなるの?って
話題を振って会話をさせたんだよ。

デコレータパターンという共通知識があり、
SmallTalkでそれを実装することができるという会話をね。

もし実装が決まっているものであれば、
SmallTalkでデコレータパターンを実装すれば
シンプルな形で実装できるんだっていう話はでてこない。

567 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 22:27:10.71 ID:KCBRtMku.net]
そもそもC++でデコレーターでもそんな難しくないでしょw
シングルトンの方がよっぽどややこしい。

568 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 22:30:18.68 ID:flPsn8Jo.net]
「シングルトン」だけで話が通じる所がデザインパターンの
便利なところだね。

さてシングルトンにもいろんな実装があるけど、
DIコンテナを使ってシングルトンに見せるっていう方法もあるよね。
これだと普通にクラスを作るだけで良くなる。

569 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 22:34:48.24 ID:qU1dasmj.net]
兄さん、そこでPythonですよ
ですしおすし

570 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 23:26:19.20 ID:QqIbwu4d.net]
Java8ならもっとHENTAIなコードが書けるぞ
ideone.com/DbIiD0

571 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 23:41:10.66 ID:6KXXOitA.net]
>>570
>>547

572 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 23:59:46.02 ID:lROFhaXh.net]
Smalltalk の最大の魅力は、
それが雑談に過ぎないということである。
by アラン・ケイ

573 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 00:45:18.40 ID:qJ0ntPw4.net]
>>570
new Price((120*2+80)*2+200) を作りたいわけではなくて
new Price(120) をデコって 840 を返させるのが Decorator
だからデコったあとに setValue(100) してから getValue() すると 760 が返るはず
ideone.com/Z24LFA
ideone.com/Diod1I
ideone.com/x2goNr
ideone.com/do6fT9

574 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 11:21:17.97 ID:nNt8IZmK.net]
>>566
まるでちがう。>>546はデコレータパターンじゃない。
Javaではデコレータパターンを使う問題を
デコレータパターンを使わずにより簡潔に記述した例。



575 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 12:45:10.82 ID:XBNCNfrP.net]
>>539
型が動的だと>>535の例のようなコードはどうなるの?

576 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 15:55:24.00 ID:8J75MUHP.net]
SmallTalkとか

577 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 17:09:10.94 ID:R0iPm5qU.net]
関数型インターフェースの方が簡潔になる
ideone.com/6MAwKM

>>573
setValue(100)してからgetValueしたら100返らなきゃバグってるだろ
setOriginalValueとかに修正するところだな

578 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 18:07:08.01 ID:8J75MUHP.net]
Wikipediaにある
> Decorator パターンの方針は、既存のオブジェクトを新しい Decorator オブジェクトでラップすることである。
がわかってない奴がいるな

579 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 18:17:54.35 ID:qhbdc1zB.net]
デザパタの目的とされがちであるが
常に失敗しているのが語彙の共有

いつでもつねに認識がバラバラw

580 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 18:21:38.71 ID:8J75MUHP.net]
>>579
ごく一部の人間が正しく理解できてないだけで、
> いつでもつねに認識がバラバラw
は言い過ぎ

581 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 18:45:37.19 ID:9oohU77o.net]
>>577
> 関数型インターフェースの方が簡潔になる

そんなんでいいなら Smalltalk でも簡潔に書けるけどね

ideone.com/RZHQ7P

582 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 19:57:46.85 ID:N9MmOijn.net]
Smalltalkに意味なんかないよ
登場してから30年とか40年とか経ってるのに
誰も現場で使ってない言語だからね
40年という歳月は結論を出すのに十分な時間だと思うよ
これから先もずっと使われないだろう
こんな言語についてあれこれ考えるのは時間の無駄だよ
御幣を恐れずに言うと、Smalltalkは間違っている、机上の空論
本当によくできていたなら、もうちょっとぐらい使われていてもおかしくない
少なくともRuby程度ぐらいには使われてないと話にならない
Smalltalkは実用にならないスジの悪い言語だということ

583 名前:デフォルトの名無しさん [2016/08/03(水) 20:22:04.47 ID:M+rE/wd/.net]
Smalltalkは言語だけじゃダメで。
windows上では使い物にならないから仕方無い。

584 名前:デフォルトの名無しさん [2016/08/03(水) 20:23:22.86 ID:M+rE/wd/.net]
要するに、windows自体がオブジェクト指向に向いてないんだよ。



585 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 20:29:26.00 ID:1jcdD/Xi.net]
結論。
誰も Smalltalk なんて知らない www

586 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 20:32:04.15 ID:N9MmOijn.net]
それは関係ない
なぜなら概念上の問題より運用上の問題のほうが大事だから
いくら概念的な素晴らしさを語ったところで
まともに運用できないならゴミ
使えない






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

前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