X



オブジェクト指向って自然な文法だな 3 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
0753デフォルトの名無しさん
垢版 |
2017/06/14(水) 08:45:08.83ID:JrGv0x1p
>>750
カプセル化が必要だとするならそれは設計が間違っているというのがhaskellの議論で明らかになったわけです
0754デフォルトの名無しさん
垢版 |
2017/06/14(水) 09:03:03.20ID:JrGv0x1p
>>747
手続き型つまり構造化プログラミング
オブジェクト指向は構造化プログラミングの
延長線上にあるものだから手続き型は友達です
仲良くしましょう
0755デフォルトの名無しさん
垢版 |
2017/06/14(水) 09:08:24.09ID:JrGv0x1p
純粋関数型と呼ばれるどこぞの言語にもdoがあるでしょう
つまり手続き型は数学的モデルのあるちゃんとした方法なんです
それを駄目だと思うのは慣れすぎてマンネリ化してるからなんです
0756デフォルトの名無しさん
垢版 |
2017/06/14(水) 09:10:44.44ID:OTRTw69H
原点に帰ろう
c言語からやり直そう
linuxはc言語で書かれていますが
完全にオブジェクト指向です
0757デフォルトの名無しさん
垢版 |
2017/06/14(水) 09:42:08.75ID:Zur2LRZk
>>753
前どこかのスレにコマンド引数の偶数番目と奇数番目を分けてリストに入れて、後から1、2番目を一つの組み。3、4番目を2つ目の組み。。。
みたいにして表示するコードをHaskellとPythonとRubyで書いたが、皮肉にもグローバル変数があっても良いはずのHaskellだけがグローバル変数作らないで済んで、
PythonとRubyはグローバル変数作らないとダメだった。

Pythonは書き様によってはグローバル変数無くせそうだったし、Rubyのsliceヒントに別の書き方のが全言語でグローバル変数要らなくなったし、シンプルになったけど。
0758デフォルトの名無しさん
垢版 |
2017/06/14(水) 09:46:27.58ID:Zur2LRZk
>>755
doの書き方は手続き型言語でも宣言的と呼ばれる関数(メソッド)呼び出しの羅列の再現。
ループとかの手続き丸出しなのの再現はあくまで再帰。
だが再現はループの代わりにもなるが、あくまで値を返す関数。
メソッドチェーンと同じで返ってくる値の型を意識する。
0759デフォルトの名無しさん
垢版 |
2017/06/14(水) 09:47:28.86ID:Zur2LRZk
x再現はループの
o再帰はループの
0761デフォルトの名無しさん
垢版 |
2017/06/14(水) 10:50:09.06ID:DZ9ij0Gz
>>757
> PythonとRubyはグローバル変数作らないとダメだった。

これ↓のどこでグローバル変数を作る必要があると?

print(list(zip(*[iter(sys.argv[1:])]*2)))

p ARGV[0...ARGV.size/2*2].each_slice(2).to_a
0762デフォルトの名無しさん
垢版 |
2017/06/14(水) 11:07:50.39ID:Zur2LRZk
>>761
お、そう書けるのね。
おいらPythonやRubyは(Haskellもそこまでじゃないけど)初心者程度だから。

そもそも重要なのは手続き型言語はグローバル変数がバグの温床になるのに、Python、Rubyじゃいとも簡単に作れちゃうって事ね。

Haskellみたいなグローバル変数がバグの温床になるわけじゃない言語でさえもパッケージ単位でカプセル化考慮されてるのに、初心者程グローバル変数宣言しちゃうし、出来ちゃうのは問題だよ。
0763デフォルトの名無しさん
垢版 |
2017/06/14(水) 11:15:17.26ID:Zur2LRZk
>>761
って、よく見たらsliceの方のアルゴリズムだし。。。
上でも、そっちはグローバル変数使わなかったって書いてるだろ。
コマンド引数の配列なりリストなりを

args!!i -- Haskell の場合
args[i] #Ruby、Pythonの場合

このインデックスのiを奇数か偶数か判定して、それぞれのリスト(配列)を作ってzipするアルゴリズムではグローバル変数使った。
おいらの力量のせいだったのかもしれんが、そう言う書き方に自然となったのが問題って話。
0767デフォルトの名無しさん
垢版 |
2017/06/14(水) 12:49:59.35ID:DZ9ij0Gz
>>763
ふつうに書けばシンプルに書けるものをなんでわざわざ複雑にせなあかんのかがわからん

p ARGV[0...ARGV.size/2*2].select.with_index{ |_,i| i.even? }.zip(ARGV.select.with_index{ |_,i| i.odd? })
0768デフォルトの名無しさん
垢版 |
2017/06/14(水) 12:51:07.02ID:pq4tRhVl
めっちゃ複雑やんw
0769デフォルトの名無しさん
垢版 |
2017/06/14(水) 12:53:55.83ID:u4jybkYs
(function(){
処理
})();

JavaScript でも、グローバルスコープにしないため、ファイル全体を無名関数で囲む。
Rubyでも、囲めばよい

結局、囲むという事は、クラスと同じ。
関数・クロージャ・ブロック・ラムダ式など、どういう表現をしようが、
スコープがあるという事は、クラスと同じ
0770デフォルトの名無しさん
垢版 |
2017/06/14(水) 12:55:47.63ID:Zur2LRZk
>>764
その発想は無かった。

>>766
実はHaskellも最初リスト内包表記でグローバル変数作ってたんだけどね。
結局判定する関数のevenとoddしか違いが無かったからmakeList関数作って纏めただけなんだが、同じリスト内包表記あるPythonで同じ様にしようとしたらi % 2 == 0とか書かないといけなかったのね。
んで、まあ良いや。0か1かで奇数偶数分けられるから関数作っちゃえって思ったらエラー出た。
定数じゃないとダメっぽくて諦めたけど、リスト内包表記に拘らなければ関数に出来たと思う。
(もしくは将来的にリスト内包表記のif式に外部から変数渡せる様になったら作れる)

処理全体を関数にしちゃうってのは確かにグローバル変数を無くす有効な手段だが、初心者ほどそんな事しない。
0771デフォルトの名無しさん
垢版 |
2017/06/14(水) 12:59:16.57ID:Zur2LRZk
>>767
ファイル名とファイルの内容をzipするコード書いた後の実験的なコードだったんで、そう言う発想になった。
後でsliceなコードのが単純だし、グローバル変数使わないって気付いたけど。

ここではどうしても使わざるを得ない場面が出て来たってのを言いたかっただけ。
0776デフォルトの名無しさん
垢版 |
2017/06/14(水) 21:53:40.74ID:293Y7UBw
>>771
>ここではどうしても使わざるを得ない場面が出て来たってのを言いたかっただけ。

それが間違いなんだって言ってんだろ
どうしようもないアホだな
0777デフォルトの名無しさん
垢版 |
2017/06/14(水) 22:01:32.77ID:293Y7UBw
そもそも771は長くても10行程度のコードしか書けないクソ初心者だろ?
その規模じゃグローバル変数でも問題ないわ
0780デフォルトの名無しさん
垢版 |
2017/06/15(木) 01:53:46.41ID:K1DnwnKl
継承、実装、DIの違いをポケモンを例に説明してくれ。
0782デフォルトの名無しさん
垢版 |
2017/06/15(木) 08:21:04.78ID:YgSQzG1P
>>776
間違いというか効率悪い方の例をわざわざあげてる意味わかってる?
この例に限らず、グローバル変数がバグの温床になるって分かってるのに、
どうしてもグローバル変数使わないと書けない場面があるから黙認されてるっていうのが、
もうオブジェクト指向はグローバル変数に対して根本的な解決策を持たない不完全なパラダイムだって証左だよ。
0783デフォルトの名無しさん
垢版 |
2017/06/15(木) 09:25:01.12ID:ESWCwDfu
>>782
Haskellだってどーしよーもないコード書くやついくらでもいるわ
お前はそのどーしよーもないコードの書き方すら知らない存外の低脳ってだけの話
0784デフォルトの名無しさん
垢版 |
2017/06/16(金) 12:29:20.85ID:HP1Jz4Vg
プログラムを勉強して日が浅いのですが、LSPを意識すると継承って何の意味があるんだろうと思ってしまいます

置換可能を実現できるということは、サブクラスはスーパークラスそのものってことになるような気がして

LSPの概念は、どう便利なのでしょうか
0785デフォルトの名無しさん
垢版 |
2017/06/16(金) 13:56:31.30ID:zL8gur9S
グローバル変数が無いと書けない場面なんて無い
グローバルスコープのシングルトンオブジェクトでいい
必要ならね
0786デフォルトの名無しさん
垢版 |
2017/06/16(金) 14:28:02.28ID:pc3mXeVr
>>784
>サブクラスがスーパークラスそのもの

受けとる側の視点ではそれでいいんだよ

違いを意識する/したいのは渡す側
0787デフォルトの名無しさん
垢版 |
2017/06/16(金) 19:13:51.77ID:HP1Jz4Vg
>>786
なるほど、なんとなく解った気がします

あとは、どういうシュチュエーションで便利かモデリングの数をこなして覚えたいと思います
0788デフォルトの名無しさん
垢版 |
2017/06/16(金) 20:00:04.73ID:Z2HbLI7g
>>787
まあ、低次元なことを言うと、
「いろいろサブクラスを作ったけど、受ける側の関数は全く変更せずに済んだ!わーい!」
てのがメリットの一例。
0790デフォルトの名無しさん
垢版 |
2017/06/17(土) 02:54:17.87ID:1edbV8Vs
メソッドディスパッチの問題だろ?

というBlogをみて「ああそれだよそれ、そういうのでいいんだよ」(孤独のグルメ風表現)になった
0791デフォルトの名無しさん
垢版 |
2017/06/17(土) 11:41:41.30ID:m1x703gI
第1目標:修正が他までどんどん波及していって修正地獄にならないようにする

なのに、変な原理原則マンに限ってそこがスッポリ抜けてたりするからな
0792デフォルトの名無しさん
垢版 |
2017/06/17(土) 14:11:25.74ID:qMkdrUOQ
原理原則っつーか原理主義者っつーか
そもそもOOは原理といえるほど理屈がしっかりしてないだろ
複数のオブジェクトにまたがるメソッドをどこに実装しようかっていう初歩のレベルで
すっきりしないというのに
むろんマルチメソッドという考え方もあるけど、ほとんどのOOPには実装されてないしな

だから複数の色んなことを同時に考慮して、うまい具合にしなきゃならないっつーのに
原理原則とかでは無いわ

我々は空間と時間を両方扱っているわけで、片方だけに着目すりゃよいってものでもないわ
0793デフォルトの名無しさん
垢版 |
2017/06/17(土) 14:15:26.57ID:qMkdrUOQ
第一、OO程度の原理原則に思考回路が縛られるって
潜在的に、そうとうオツムが弱いよな
世の中の理屈とかけ離れすぎているというか、単純化しすぎ
0794デフォルトの名無しさん
垢版 |
2017/06/17(土) 15:24:12.75ID:hpXZLyYV
>>792
> 複数のオブジェクトにまたがるメソッドをどこに実装しようかっていう初歩のレベルで

オブジェクト指向は、現実世界で実現しているオブジェクトに
ソフトウェアの設計を合わせようとするものだが、

現実世界のオブジェクトでは、
「複数のオブジェクトにまたがるメソッド」は
どこに実装されているんですか?


複数のオブジェクトにまたがるメソッドというものが
そもそも不自然なメソッドですよね?
0795デフォルトの名無しさん
垢版 |
2017/06/17(土) 16:14:00.96ID:jlRZsUTe
>>794
>現実世界のオブジェクトでは、
>「複数のオブジェクトにまたがるメソッド」は
>どこに実装されているんですか?

物理法則に実装されてる
0797デフォルトの名無しさん
垢版 |
2017/06/17(土) 17:27:39.37ID:qMkdrUOQ
はい皆さん>>794を読んでください
もうこの時点でアホっぽいってわかるでしょ
ありえないぐらいで、釣りじゃないかと疑うぐらい

アホらしいけどまず基本的なことからいうと
コンピュータは日本語で「計算機」ともいうのでそっちの方向から攻めると
足し算は現実世界のどこに実装されているんですか?っていうぐらいアホなイチャモン

物や物体的なことにこだわって、概念的なことであるとか関係性といったものを
認めない姿勢は技術者ではない以前に、人間的ですらない
0798デフォルトの名無しさん
垢版 |
2017/06/17(土) 17:38:01.77ID:hpXZLyYV
>>795
物理法則っていうのは、

例えばすべての物体は引力があるとか?
あ、これ複数のオブジェクトにまたがるんじゃなくて
個々のオブジェクトに引力があるのか

例えば、熱を加えると発火するとか?
あ、これもその物体が変化するだけか

複数のオブジェクトにまたがるメソッドってなんですかね?
0799デフォルトの名無しさん
垢版 |
2017/06/17(土) 17:40:22.96ID:hpXZLyYV
>>797
数値を入力してボタンを押すと足し算を行うのは
計算機というオブジェクトが持ってる機能ですよね?
それとも電気信号レベルの話をすれば良いのですか?

そろばんでも足し算ができますが、
もしかしてこの2つを同一のものとみなしてるのですか?
そろばんは電気信号じゃなくて物体の位置で表現するって
だけですからね。
0800デフォルトの名無しさん
垢版 |
2017/06/17(土) 18:01:41.38ID:qMkdrUOQ
アホか
数学上での足し算という「概念」の話だ
1に2を足すと3になるっていう概念上の関係性の話だ
別に現実世界に実装があるわけじゃないが、1に2を足すと3になるし、有用なんだよ
ついでに言うと、1とか2とかいう数字自体からして現実世界に実装が存在しているわけではない
1とか2はあくまで数学上の概念だ
もう本当にあほだなぁと思う、あきれて言葉も出ない
こうなったらもうエンジニアとして終わりなんだと思うし
人としても鬱病になる末路なんだろうか、知ったこっちゃないが
0801デフォルトの名無しさん
垢版 |
2017/06/17(土) 18:08:50.48ID:qMkdrUOQ
>数値を入力してボタンを押すと足し算を行うのは
>計算機というオブジェクトが持ってる機能ですよね?
>それとも電気信号レベルの話をすれば良いのですか?

この発言もかなり面白くて、この言葉通りにプログラムをすれば
すべてのメソッドはコンピュータインスタンスに紐づくことになる
computer.add(1,2); computer.func(a,b,c);ってところか?
OOだなんだいったって、実際に処理をするのは「コンピュータ」
に他ならないんだから至極当然な意見だわなwww
たしかに現実世界を模してるわ
いわゆるGODクラス、staticおじさんと同じだ
つまりもう、自分がどういう立場をとっていて何を言っているのかすら
よくわかっていない状態ということだな
病的
0802デフォルトの名無しさん
垢版 |
2017/06/17(土) 18:17:41.65ID:hpXZLyYV
>>800
> 1に2を足すと3になるっていう概念上の関係性の話だ

1という値の数値オブジェクトに
2という数値オブジェクトを引数に
数値オブジェクトの加算メソッドを呼び出すと
3という数値オブジェクトになるって話?
0804デフォルトの名無しさん
垢版 |
2017/06/17(土) 19:48:30.88ID:hpXZLyYV
>>803
そりゃそうでしょw

地球の引力を計算するには、月の存在が必要だ!
などといったら笑われるよw
0805デフォルトの名無しさん
垢版 |
2017/06/17(土) 20:34:57.52ID:qMkdrUOQ
ほらまたバカなこと言いだしたでしょ、すごいでしょ、この病気
俺がかなり煽った文体で書きこんでるのにもかかわらず
お前の援軍は誰も現れないでしょ、これが現実
頭悪すぎて他人の言っていることも自分の言っていることすら理解できないという
もうどうしようもない残念さで、誰も味方がいない

この手の人は本当にもうどうしようもなくて
かわいそうだからと周りの人が説得を試みても全くの無駄というか
普通の人が当たり前にできる思考が、どうにも理解できないらしく
必ず自分にわかる範囲で自分の領域に持ち込んで考えようとするんだが
その行為自体が間違っているってことが何故か分からないらしい
袋小路でとにかく打つ手なし
0807デフォルトの名無しさん
垢版 |
2017/06/17(土) 20:44:48.25ID:qMkdrUOQ
まず引力に関して言えば、引力という力の存在は認められているが
なぜ引力という力が働くのかということは
本当のところは誰にもわからない
つまりは表面上そう見えるからそういう力があるのだろうという程度のものであり
根本的な原理は未解明なので、誰が引力を実行しているかとか考えるだけバカ

あと本質的に>>803が言いたいのは、オブジェクトが一つしかなければ
引力など定義しても無意味だし、引力の効能は性質となって表れないから
定義もされないっていう意味だろう
まぁ一般的な考え方だな
世の中は極めて相対的だしな
お金の価値ですらそうだしな
0808デフォルトの名無しさん
垢版 |
2017/06/17(土) 20:46:44.94ID:hpXZLyYV
> オブジェクトが一つしかなければ
> 引力など定義しても無意味だし、

オブジェクトが一つしかない状態に限っていえば
無意味なんだと言われましても・・・

数字だって一つしかなければ
足し算は無意味ですよ?
0809デフォルトの名無しさん
垢版 |
2017/06/17(土) 20:48:06.62ID:hpXZLyYV
あ、そうか
マルチメソッドはオブジェクトが一つしかなければ無意味だ!
って言いたいんだな。
0810デフォルトの名無しさん
垢版 |
2017/06/17(土) 21:15:05.61ID:qMkdrUOQ
わかりやすいところでWeb検索の例だと
Googleのページランクの仕組みは非常に現代的だったわな
たくさんあちこちからリンクが張られているページは有用性が高いのだろう
そして有用性の高いページからリンクが張られているページもまた有用性が
高いのだろうっていう
そんで、かつてのYAHOO方式は負けたわけだ
でも別に珍しいことではなくて、論文とかでもたくさん引用されている論文は
価値が高いってことになってるし、まぁ基本といいますか
たくさん友達のいる人は有能なんだろうってのも大体あってるし
取引先の多い企業、特に大企業との取引がある会社は信用が有るってのも
一般的な価値基準だわなぁ
資本主義に関しても、お金のような流動性のあるものに着目するっていうのが
現代的であるし、お金をどんどん回して経済を発展させようってのも
政治家の大好きな謳い文句だわな
大体世の中そういう構図になっているから、反対へ行く人や軽んじる人
もしくは君みたいに理解できない人は北朝鮮になる
ただ何事もバランスは大事なんだけど、そうはいってもどっちに軸足を置いておくか
ってのはあるわな
簡単な方の考え方は誰にでもできるし、意識する必要もないし、学ぶべき部分もないから
あまり重要視されないんだけど、本音と建て前みたいな話にもなってくるわ
ただ、とっちが建前になってどっちが本音になるかは相手とシチュエーションによるという
つまり俺もOOPを、「使う」わけだが、いつも「必要悪」という考えはある
絶えず反対のことを考えながら吟味してOOする
そのぐらいでちょうど良いバランス
ただ、本音と建前の世界なのでコンセンサスが取りにくい
hpXZLyYVみたいなのが入ってくると破たんする
いちいち面倒くさいんでLinusがC++を追い出す気持ちもわかる
OOPをおもちゃにする奴はマジで糞
0811デフォルトの名無しさん
垢版 |
2017/06/17(土) 21:26:18.74ID:qMkdrUOQ
あと、物理量としての引力、っつーか質量と、相互作用としての引力の働き
では差があるわな
しかも現実世界の引力のメカニズムは解明されていない
どういう理屈で力が働くのかとか、だれにも分からん

>例えばすべての物体は引力があるとか?
>あ、これ複数のオブジェクトにまたがるんじゃなくて
>個々のオブジェクトに引力があるのか

「個々のオブジェクトに引力がある」って何ですか?
すべての人には年齢がある、と同じノリですか?
0812デフォルトの名無しさん
垢版 |
2017/06/17(土) 21:59:39.35ID:qMkdrUOQ
>>343
あぁごめんな
ただあの人のインタビューとか読めばわかるけど
逆張り逆張り言ってる
あの人自身もRubyの筋が良いとかメインストリーム的な思想であるとは
考えてないんだよ
ただ、自分の人生の中で逆張りした場合にうまくいくことが多かったので
逆張りし続けているんだとか
だからRuby3.0でも逆張りの一種として
静的型の機能は導入しない方向を検討しているんだろうな
ただそう何度も逆張りが上手くいくとは思わないし
逆張りはしょせん逆張りだろ?あだ花というかなんというか
そういうこともあって結局Rubyはプチブームで終わった現状があるわけだし
変なことして注目を集めることはあってもそれは一過性だよ、芸人じゃあるまいし
しかも逆張りしたときに自分にとって都合がよいことが多かったってだけで
使い手のことは別に考慮されてないんだよなー
0813すまそ
垢版 |
2017/06/17(土) 22:00:28.43ID:qMkdrUOQ
いわゆるこれは誤爆だな
0814デフォルトの名無しさん
垢版 |
2017/06/17(土) 22:12:00.21ID:8ikdtkeK
シングルディスパッチ擁護勢ってwikipediaの多重ディスパッチのページのJavaの例を許容してるんだろうか?
0815デフォルトの名無しさん
垢版 |
2017/06/17(土) 22:54:41.66ID:ExP73Jcy
モノにこれこれの機能がある、なんていうモデリングは現実世界には適用しづらいのではないか
いわんや物理法則をや
0816デフォルトの名無しさん
垢版 |
2017/06/18(日) 00:10:58.25ID:Sub4PpSI
物理法則は存在させるなら基底クラスかシステムに仕込んで全てのオブジェクトが従うもんでしょう。
個別のふるまいレベルで弄るもんじゃないから、そもそも例えですら出てくるようなもんじゃない。
0819デフォルトの名無しさん
垢版 |
2017/06/18(日) 01:35:23.79ID:LYWH9ARf
オブジェクト志向が現実のものをそのままモデル化するためにあるなんて大嘘誰が言い始めたんだ
0820デフォルトの名無しさん
垢版 |
2017/06/18(日) 01:42:11.38ID:dLIsPmeH
× オブジェクト志向が現実のものをそのままモデル化するためにある
○ 人間が自然に認識している現実のもの(オブジェクト)を使って
モデル化するから理解しやすいものが出来上がる。
0821デフォルトの名無しさん
垢版 |
2017/06/18(日) 01:48:39.71ID:LYWH9ARf
オブジェクト指向は、現実世界で実現しているオブジェクトにソフトウェアの設計を合わせようとするものなんていう大嘘誰が言い始めたんだ
0822デフォルトの名無しさん
垢版 |
2017/06/18(日) 02:09:35.32ID:Sub4PpSI
「せんし」に「たたかえ」送るとプレイヤーは細かいこと指示しなくても自分で戦ってくれる。
これはあくまでモデル上でのすっきりした切り分けの話であって、こういうオブジェクト化に
「戦場で仲間に"たたかえ"ってなんだよw」とか「順番に交互に殴るのかよ」とか言ってもまったく無意味だというのに
キャットドアじじいはなんかそういうことから理解できてない知恵遅れだからね。
0823デフォルトの名無しさん
垢版 |
2017/06/18(日) 02:54:24.42ID:dLIsPmeH
オブジェクト指向の話をしていると
よく勘違いしてるやつが出てくる。


オブジェクト指向で現実世界を実現しようとするやつだ。
シミュレーションでもやらない限りそんなものは意味がない。


その逆、実現したいものを現実世界をヒントに
オブジェクト指向でモデル化するんだよ。

そうすることで現実世界という共通認識を利用して
実現したいものをわかりやすく表現することができる。
0826デフォルトの名無しさん
垢版 |
2017/06/18(日) 06:57:50.55ID:ECvs/sM3
ドア本体とそれに付属するノブの状態(「開閉」と「回す、離す」)、
ノブに付属するラッチ(固定具)の状態(ノブの回転に応じて引っ込む)
をオブジェクト指向でモデリングしてみてよ

オートクローザーやドアストッパーが設置されることも加味しつつ
0827デフォルトの名無しさん
垢版 |
2017/06/18(日) 07:37:54.80ID:ZkAshefq
「たたかえ」送ってないのに勝手に雑な戦いを始めたがる「ばか」たち
0829デフォルトの名無しさん
垢版 |
2017/06/18(日) 07:53:36.83ID:/PaBW9c2
現実世界とか言い出すといくらでも後出し要件が出てくる。
「でも現実を見てみなよ」って。
モデリング終わりがなくなってしまうわけだ。
そういうバカには5000兆円の見積書でも送りつけてやればいい。
0830デフォルトの名無しさん
垢版 |
2017/06/18(日) 08:07:11.57ID:pnvlJ80w
物事を分類整理するための手法なのだから管理する要件でない不用な要素は極力排除しないとな
0831デフォルトの名無しさん
垢版 |
2017/06/18(日) 09:07:26.63ID:GpgbwXNc
相互作用という物理では当たり前の考え方を
理解できない文系のためのモデリング
それがオブジェクト指向
0832デフォルトの名無しさん
垢版 |
2017/06/18(日) 11:56:10.30ID:dLIsPmeH
>>824
例えば>>826のようの

現実世界にある何か(ドア)をオブジェクト指向で表現してくれ
なんていう考え方がアホなんだよ。

ソフトウェアでドアを作ることがあるとしたら、
ゲームとかだろうけど、ゲームとして必要なドアを
ソフトウェアで実現するならば、オブジェクト指向が便利ですね

なぜなら、ゲーム世界のドアをオブジェクトとして実装することができるので
現実世界で我々がよく知ってるドアを参考にできるからです。

ってな具合
0833デフォルトの名無しさん
垢版 |
2017/06/18(日) 13:56:58.20ID:/PaBW9c2
文系って言い方はあれだけど、物理法則を因果関係的に捉えてるのかもな。
あれがこうしたらこれがこうなる、みたいに。
0834デフォルトの名無しさん
垢版 |
2017/06/18(日) 14:23:38.73ID:ZkAshefq
理系って言い方はあれだけど、物理法則を因果何的に捉えてるの?
0835理系
垢版 |
2017/06/18(日) 14:27:11.50ID:GE9zkfwM
>>834
因果応報。
0836デフォルトの名無しさん
垢版 |
2017/06/18(日) 14:30:00.44ID:dLIsPmeH
人間って何歳の頃から、現実世界を
オブジェクト指向として認識するのだろうか?

同じ人間であっても自分の母親と他人の母親は別だって
理解できるし、人間と動物の区別もついているだろう。
そして、犬はワンワン、猫はニャーニャーって鳴くことを
理解するだろう。

人間の認識とはかくもオブジェクト指向であるものだろうか
0838デフォルトの名無しさん
垢版 |
2017/06/18(日) 19:18:13.12ID:M+qF4ayC
>>832
ゲームのドアなんぞ開く閉じるの状態と、開く条件(鍵とか)ぐらいだろ。

んで、自動ドア制御とかだとセンサーから信号が来た時だけ開いて、数秒したら閉じれば良い。
人が通った時の赤外線センサーか、人が挟まった時の圧力センサーかはプログラムは知る必要無い。

これらに共通のドアクラスなんぞ作って何か共通点があるの?
0839デフォルトの名無しさん
垢版 |
2017/06/18(日) 19:24:10.12ID:ZkAshefq
>>838
開く閉じるの状態があるのは開口部のほうやけんど?
0841デフォルトの名無しさん
垢版 |
2017/06/18(日) 21:51:50.67ID:dLIsPmeH
>>839
それは現実世界のドアの話だろう?

ゲームの世界のドアは、現実世界を参考にできるが
ゲーム特有のドアという仕様を作る。

3Dゲームであれば、ドアには開く閉じるという状態は必要ないだろう
なぜなら物体をすり抜けられないという仕様と
蝶番を支点にドアを動かせるという仕様があればよいからだ

だけど2D RPGみたいなドアであれば、ドアの状態というものがあってもよい
開いているドアであれば、その上を移動することができ、
取っじているドアであれば、その上に移動することはできない。

このようにオブジェクト指向は現実世界の物シミュレートためのものじゃなくて
作りたい仕様を、みんなが持っている現実世界の共通認識を使って
わかりやすくする表現するための技術なんだよ

それにしても現実世界のドアについての人間の認識ってのも面白いよな。
ドアからすれば、物理的にはどういう位置にあるかでしかないのに、
人間は「開いている」「閉まっている」というドアの状態として認識しているわけだ
この認識、利用しない手はない!
0842デフォルトの名無しさん
垢版 |
2017/06/18(日) 21:54:52.64ID:ZkAshefq
>>841
開口部の状態だって教わったのに意地はっちゃってw
ドアオブジェクトなんてそもそも必要ないんや
こーゆーのをモデリングゆーんやわかったかボケカス
0844デフォルトの名無しさん
垢版 |
2017/06/18(日) 22:01:44.39ID:dLIsPmeH
アスペだと「ドアが開いている」ときいて

ドアが開いているとか意味がわからない
開口部があってそこがドアというもので塞がれているかどうかだ。
だから「開口部がドアで塞がれていない」と言うべきだ

とか思うのだろうか?

アスペには常人の共通認識は通用しない
オブジェクト指向には不向きな人間だなw
0845デフォルトの名無しさん
垢版 |
2017/06/18(日) 22:09:09.19ID:ZkAshefq
>>844
なあ?お前の考えた最強の抽象化ってぜんぜん抽象化じゃなかっただろ?
恥ずかしいけどこれで一つ賢くなったんだ
次はもう少し長くドヤれるようになるじゃないかw
0846デフォルトの名無しさん
垢版 |
2017/06/18(日) 22:11:24.68ID:dLIsPmeH
>>845
誰が最強の抽象化とか言ったんだ?
お前はだれと戦ってるんだ?

俺の言ってることに何一つ反論して無くて
俺のほうが正しかったと主張してるだけ
妄想も大概にしろよ。
0847デフォルトの名無しさん
垢版 |
2017/06/18(日) 22:14:21.01ID:ZkAshefq
>>846
え?お前なんか意味のある事言ってたの?
じゃあもう一度言ってみ?聞いてやるからw
0848デフォルトの名無しさん
垢版 |
2017/06/18(日) 22:15:23.98ID:dLIsPmeH
抽象化というのは本質的な所

ドアには開いている・閉じているという
状態があると認識することだよ。


本当は開口部だーとか細かいことに
こだわるのは抽象化とは逆の考え


はい論破♪
0849デフォルトの名無しさん
垢版 |
2017/06/18(日) 22:15:46.63ID:dLIsPmeH
>>847
もう一度言えばいいの?

それは現実世界のドアの話だろう?

ゲームの世界のドアは、現実世界を参考にできるが
ゲーム特有のドアという仕様を作る。

3Dゲームであれば、ドアには開く閉じるという状態は必要ないだろう
なぜなら物体をすり抜けられないという仕様と
蝶番を支点にドアを動かせるという仕様があればよいからだ

だけど2D RPGみたいなドアであれば、ドアの状態というものがあってもよい
開いているドアであれば、その上を移動することができ、
取っじているドアであれば、その上に移動することはできない。

このようにオブジェクト指向は現実世界の物シミュレートためのものじゃなくて
作りたい仕様を、みんなが持っている現実世界の共通認識を使って
わかりやすくする表現するための技術なんだよ

それにしても現実世界のドアについての人間の認識ってのも面白いよな。
ドアからすれば、物理的にはどういう位置にあるかでしかないのに、
人間は「開いている」「閉まっている」というドアの状態として認識しているわけだ
この認識、利用しない手はない!
0850デフォルトの名無しさん
垢版 |
2017/06/18(日) 22:18:27.67ID:dLIsPmeH
ドアが開いている、閉じているという話をする時
開口部なんて細かい枝葉は誰も考えてないって所が重要だね。

まあ密室殺人で警察に聞かれた時に
この部屋の開口部はドアで塞がれていましたなんて
言わないのと同じこと。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況