トップページ⇒tech
1001コメント323KB

オブジェクト指向の弊害

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2012/01/24(火) 23:15:19.23
非OOPでコーディングされたソースを見て発狂するアホを生み出したこと
そのくせOOPを十分に理解してないから痛々しい
0232デフォルトの名無しさん2012/04/16(月) 23:06:17.89
基底クラスの配列にサブクラスのインスタンスを格納するのはごく普通のことだろ
同じ配列に入れるのが目的で継承するとかなら別だけど
0233デフォルトの名無しさん2012/04/16(月) 23:09:58.15
>>231
入れられないじゃなくていれねーんだよ
違うもんなんだから違うように扱えよ
なんでわざわざごった煮にするんだよ
0234デフォルトの名無しさん2012/04/16(月) 23:13:26.59
WindowsAPI位しか非OO系言語のライブラリを使っていないけど、
アレでもオブジェクト指向している気がする。
ハンドルで識別される「何か」に対して操作を行うって設計に。
0235デフォルトの名無しさん2012/04/16(月) 23:25:59.45
>>233
全てはタスカー様のお導きのままに。
0236デフォルトの名無しさん2012/04/16(月) 23:29:31.58
オブジェクト指向だから何でも多態ありきでやろうとするとタスクシステムへ行き着くんですけど
信者とアンチが大暴れするあのタスクシステムに。
オブジェクト指向でも何でもない、関数ポインタの配列ぐるぐる回すだけのタスクシステムに。
0237デフォルトの名無しさん2012/04/16(月) 23:38:05.20
>>233
そもそも違うかどうかも知らんし、知る必要もない。
特定のインタフェースを実装してるかどうかだけわかってればいい。
0238デフォルトの名無しさん2012/04/16(月) 23:39:13.95
>>236
なんだそのタスクシステムって。
0239デフォルトの名無しさん2012/04/16(月) 23:45:48.28
>>238
http://www5f.biglobe.ne.jp/~kenmo/program/task/task.html
0240デフォルトの名無しさん2012/04/16(月) 23:59:02.36
>>233
君にはオブジェクト指向が向いてない
DuckTypingなんて10年も前のトピックだ
0241デフォルトの名無しさん2012/04/17(火) 00:08:30.21
>>237
でも生成するときって違いはあるんでしょ?
それをなんの意味もないのにわざわざ一箇所にまとめてるんだよね?
バッカでー
0242デフォルトの名無しさん2012/04/17(火) 00:11:07.86
>>241
一括管理できるものを、わざわざバラバラに管理する意図がわかりません。
0243デフォルトの名無しさん2012/04/17(火) 00:14:39.40
>>242
したらどうして違うクラスにしたの?
ごった煮で入ってるってことはどっかで分けないといけないよね?
0244デフォルトの名無しさん2012/04/17(火) 00:16:22.40
極端な話すべての使用するクラスのインスタンスを1つの配列に突っ込むことも可能っちゃ可能だ
実際、ゲームではそうやっちゃう人もいるしねw

彼らポリモ信者はそこに線引きはできるんだろうか?
0245デフォルトの名無しさん2012/04/17(火) 00:18:57.62
> したらどうして違うクラスにしたの?
あるメッセージを受け取った時の処理が、それぞれ異なるから。

> ごった煮で入ってるってことはどっかで分けないといけないよね?
メッセージを受信したオブジェクトがそれぞれ自分の動作をすればいい。
0246デフォルトの名無しさん2012/04/17(火) 00:20:52.18
>>243
君は怖がっているが、有用な手段であることには変わりない
怖いのならやらないのは仕方ないが、だからといってやる人間がいなくなるわけではないな
0247デフォルトの名無しさん2012/04/17(火) 00:22:38.41
>>245
やっぱ、違うじゃん
違う処理走るんだろ?
違う情報が必要になるし(この時点で引数が違う)
同じ利点がまったくねーじゃん
せいぜいfor文1つで済む程度
2つ書いてもコピペで済むレベルのはずなのに
なぜかこんなところを一生懸命まとめようとしてるのがポリモ信者(=馬鹿)
一度ポリモを使ったときとそうでないときとでコードを比べたほうがいいよ
0248デフォルトの名無しさん2012/04/17(火) 00:23:01.49
タスクシステムの何が嫌いって、ごくローカルな用語でしかないのに
>>236みたいに知ってて当然というような態度の奴がいるのが嫌い。
0249デフォルトの名無しさん2012/04/17(火) 00:24:56.84
>>247
釣りかよ…
0250デフォルトの名無しさん2012/04/17(火) 00:25:14.57
結局、削減可能工数から逆算できる技術以外はみんなカスだな
1Hもけずれねーことに力いれてんじゃねーよカス
ポリモ使ってまとめられるレベルじゃおまんまクエねーよバーカ
理詰めで仕事ができない奴って毎回こんなチンポコレベルの仕事しかできなくてはずかしくねーのか?って毎回思う
0251デフォルトの名無しさん2012/04/17(火) 00:27:20.47
>>247
> 違う情報が必要になるし(この時点で引数が違う)
仮にもオブジェクトなんだから、動作に必要な情報は自分自身が持ってるでしょ。

もし、クラスに応じて違う引数を渡さないといけないようなものをまとめてるのなら
設計が下手としか言いようがないが、下手なものを持ち出されて「ダメじゃん」
って言われてもねぇ。
0252デフォルトの名無しさん2012/04/17(火) 00:29:59.51
>>251
>仮にもオブジェクトなんだから、動作に必要な情報は自分自身が持ってるでしょ。
そうとも限らないよね?
ゲームではよくあるんだけどホーミングミサイルとかはどうしても別オブジェクトの情報が必要になる
0253デフォルトの名無しさん2012/04/17(火) 00:31:46.48
>>252
で、そのホーミングミサイルを同時に数種類動かすときどうすんの?
その種類ごとにループ作るの?
種類が増えたらループ増やすの?
0254デフォルトの名無しさん2012/04/17(火) 00:32:36.46
コピペプログラマの主張なんか聞くに値しないなwwww
0255デフォルトの名無しさん2012/04/17(火) 00:33:54.05
>>252
ホーミングミサイルというやつに、別オブジェクトの情報を持たせればいいんじゃね?
そのときに、どんなオブジェクトを追尾しててもgetLoc()で座標が取れたら便利だと思わないか?
0256デフォルトの名無しさん2012/04/17(火) 00:36:19.23
>>255
そのオブジェクトが消滅したらホーミングミサイルにどうやって通知するんだ?とか考えはじめると頭痛くなる。
0257デフォルトの名無しさん2012/04/17(火) 00:37:38.07
参照が切れるまでは消滅状態で保持する
0258デフォルトの名無しさん2012/04/17(火) 00:39:00.43
>>255
実際に狙われもしない奴のgetLoc()も実装するとかめんどくさすぎる。
0259デフォルトの名無しさん2012/04/17(火) 00:39:42.48
それこそ継承じゃん
0260デフォルトの名無しさん2012/04/17(火) 00:43:37.13
>>220
上はOOでもOOPでもなくOOPLの説明でしょ
OO自体には「オブジェクトを中心とした考え方」以上の意味はないかと
0261デフォルトの名無しさん2012/04/17(火) 00:48:56.22
ごった煮だと当たり判定で組み合わせ爆発したらどうすんのとか。
あらかじめリストを敵、弾、自機とかにわけておけば軽減できるよとか。
え、最近のPCは速いから大丈夫だって?うん、俺もそう思う。
0262デフォルトの名無しさん2012/04/17(火) 01:14:02.96
てかすでにごったの利点は消えてる
ちょっと関連が増えるとすぐにこの状態になるのがポリモ
なんの利点もねーよ
ホーミングミサイル程度も受け入れるキャパがないのがポリモ
なんの検証もしないで導入しちゃうから当然の結果

所詮似非技術者ができることなんてこの程度
農家の生まれが知的作業するなっていういい例
0263デフォルトの名無しさん2012/04/17(火) 01:18:37.31
多種多様な要件に応えるために肥大化する基底クラス。人はそれをゴッドクラス(神クラス)と呼ぶ。
0264デフォルトの名無しさん2012/04/17(火) 01:21:19.59
>>263
神クラスってのはCマガジンの誰かがつけた名前で
グローバルインスタンスホルダー(ネーミングで内容はだいたい予想できるだろw)のことだ
0265デフォルトの名無しさん2012/04/17(火) 02:13:42.40
>>262
うんだから君にオブジェクト指向は無理だから
無理しなくてもいいんだよ
0266デフォルトの名無しさん2012/04/17(火) 06:56:24.99
ゲームの例えしか出せないのはゲーム業界の奴だと思うけど、そういう奴はオブジェクト指向とか無視して
今まで通りC言語でゴリゴリ書いてりゃいいんじゃね?w
ゲームなんて突貫工事みたいに汚いコードでも、とりあえず動けばいいってな感じだし、再利用性も考えてるヒマがない。
汚すぎて常に使い捨てのソースw
バグが出ても誰に迷惑をかけるわけでもなく、単に「糞ゲー」と呼ばれるだけ。
そういう責任感が希薄な現場なので、自分もその雰囲気に染まって仕事するしかないだろう。
0267デフォルトの名無しさん2012/04/17(火) 07:06:44.04
>>265
はぁ?
俺がどうこうって問題じゃなくて
すでに利点が消えてんじゃん
問題の切り分けもできないの?バーカ
0268デフォルトの名無しさん2012/04/17(火) 07:11:51.36
認めて欲しくて必死だな
0269デフォルトの名無しさん2012/04/17(火) 07:14:10.40
>>268
は?
馬鹿なの?
すでに導入した技術の利点が消えてるのに
なんで利用しつづけようとするの?
って聞いてんだよ
0270デフォルトの名無しさん2012/04/17(火) 07:17:16.25
多態なんてミサイルとホーミングミサイル(ターゲットの引数1つ増えただけ)の違いも記述できないチャチな仕組みってことだよな
0271デフォルトの名無しさん2012/04/17(火) 08:15:28.19
弱い奴ほどよく吠える
0272デフォルトの名無しさん2012/04/17(火) 08:26:55.28
わけのわからん奴が
利点欠点入り乱れる中
ゲーム界という狭き立場で利点を欠点に変えようとしてる阿呆がいる
利点もあるし欠点もあるんだよ
0273デフォルトの名無しさん2012/04/17(火) 08:28:07.70
>>267
利点が理解できないんでしょ。だから消えてるように見える。
無理しなくていいんだって。
0274デフォルトの名無しさん2012/04/17(火) 08:30:13.31
ネタかと思ったら天然だったでござる
0275デフォルトの名無しさん2012/04/17(火) 08:36:34.74
ポリモ信者も糞だがアンチも糞ということがよく解った
0276デフォルトの名無しさん2012/04/17(火) 08:39:18.98
>>270
記述できるよw

ゲームとかでもよく使われてる。
0277デフォルトの名無しさん2012/04/17(火) 08:42:46.55
ファイルとフォルダの関係のポルモ(同一視)の利点について、どう欠点に変えてくれますか?
0278デフォルトの名無しさん2012/04/17(火) 08:54:05.22
>>247
>同じ利点がまったくねーじゃん
>せいぜいfor文1つで済む程度

コピペで済ますか済まさないかという大きな違いがある
そこの違いに意味を持たせる事が出来ないなら使いこなせませんよ

0279デフォルトの名無しさん2012/04/17(火) 09:02:47.23
>>273でFA
0280デフォルトの名無しさん2012/04/17(火) 09:08:57.65
すでに導入した技術の利点が消えてるのに
なんで利用しつづけようとするのか?

ポリモの話じゃねえじゃんww
0281デフォルトの名無しさん2012/04/17(火) 10:01:01.96
どっちも必死すぎてくだらん
0282デフォルトの名無しさん2012/04/17(火) 10:16:44.47
痛い所は全てスルー
0283デフォルトの名無しさん2012/04/17(火) 10:21:12.48
ポリモの利点を語れない奴が欠点だけ語ってんだよ

底の浅い奴だな
0284デフォルトの名無しさん2012/04/17(火) 12:34:19.04
ただのインターフェースの共通化、抽象化をOOPの成果みたいに言うのもどうかと思うがな。
0285デフォルトの名無しさん2012/04/17(火) 12:59:06.01
ゲーム業界という、質より物量を優先する所では使えないだろうな
0286デフォルトの名無しさん2012/04/17(火) 13:08:23.02
物量の無いところでポリモの出番無いんじゃ。
0287デフォルトの名無しさん2012/04/17(火) 17:39:52.15
階層型データ、例えばフォルダ/ファイルとか、ブラウザのブックマークとか、アプリのメニューバーとか、XMLパーサーとか、
そういうのを全部、再帰構造のクラスで表現するように書き直す作業をやってる。
それが凄い面白い。
クラスの中に自分のクラスのインスタンスのポインタ配列を持たせて、入れ子状態を表現する。
そうやってクラスを書くと、コード行数がもの凄い減ったし、個々の処理がシンプルで見やすくなった。
これは勉強になったわ。
オブジェクト指向は最強だ。
0288デフォルトの名無しさん2012/04/17(火) 17:43:09.63
いや、最強と言っちゃうと変な人が騒ぎ出すから…
0289デフォルトの名無しさん2012/04/17(火) 18:33:36.36
ゲームみたいに速度重要なとこじゃ使えんだろう。
オブジェクト指向厨がいくら設計がんばっても、速度でなけりゃ物量もだせないし、
全然ダメだろ。設計で速度もみつもれりゃいいんだろうけど。
0290デフォルトの名無しさん2012/04/17(火) 19:20:54.66
>>279
少なくともミサイルとホーミングミサイルでは役に立たないみたいだねw
0291デフォルトの名無しさん2012/04/17(火) 19:21:41.28
もっと建設的な言い方しろよ
全然ダメとか何様だよww

笑っちゃうだろ
0292デフォルトの名無しさん2012/04/17(火) 19:32:24.47
一連のレスを読んで、日本のゲームデベロッパがいかに低レベルか思い知らされたよ。。
もうちょっとレベルが高いものと思ってたけど、これじゃぁ欧米に勝てる見込みはなさそうだね。。
0293デフォルトの名無しさん2012/04/17(火) 19:36:10.24
>>291
本当の建設的っていうのは
役に立たないものを役に立たないと受け入れらることだろう

そもそもお前等似非技術者はなんでこんな効果のわからんもんを簡単にYesと言ってしまうのか?
お前等じゃわからないんだろ
検証の仕方も判断の記述も自分で定義できんから?
した覚えあるのか?ないだろ?

馬鹿じゃないのか?
ちゃんと検証してみろ嫌なことから目をそらすな
数字で追えば必ず答えは見える

これが見えなくなったら技術者なんて辞めちまえ
給料少ないしホントにやってる意味ないと思う
0294デフォルトの名無しさん2012/04/17(火) 19:37:51.88
>>292
>もうちょっとレベルが高いものと思ってたけど、これじゃぁ欧米に勝てる見込みはなさそうだね。。
このオブジェクト指向だのポリモだののゴミは

 向 こ う か ら き た も の だ か ら !

まあ、向こうの文化とかもよく知るべきだよね
セミナーとか金集めの道具にこういう意味不明な技術はもってこいなんだろ?
0295デフォルトの名無しさん2012/04/17(火) 19:47:25.44
頭のいい人は気がつくんだろうけどね
http://tabesugi.net/memo/2009/1a.html#152154
0296デフォルトの名無しさん2012/04/17(火) 20:00:46.27
>>295
多くの平均以下のプログラマがC++を使わなくなれば改善するよw
まぁJavaみたいに平均以下のプログラマを大量に投入するのに特化するのもありだと思うけど。
0297デフォルトの名無しさん2012/04/17(火) 20:02:54.73
理詰めでモノを考えられない似非技術者が多いのが嫌いなんだろ?
多分その人もメリットを数字であげてみろって絶対いうと思うけどね
製造業でこれがないっておかしくないか?
0298デフォルトの名無しさん2012/04/17(火) 20:07:29.53
自我強い奴に関わると疲れるだけだろ
0299デフォルトの名無しさん2012/04/17(火) 20:13:09.92
だから利点もあるし欠点もあるんだって・・

なんで欠点だけしか語れないの?
0300デフォルトの名無しさん2012/04/17(火) 20:44:23.91
>>299
利点って?
正直、引数1つ増えたごときでもう使えないんじゃ利点も糞もないと思うんだけど?
仮に引数として増やさなかったときはそのつじつまあわせは別のどっかでやるんでしょ?
これをやっちまったときの余波が正直ハンパねぇ痛さだと思う
担当者があきらめてこの時点で多態をやめてくれれば傷は浅くて済むが・・・

引数たった1こですよ
いつ必要になるかわからないレベルじゃん
これでもうこの構造ダメ
冷静に考えて使い物にならない
メリットあるとかないとかの話じゃないだろこれ
0301デフォルトの名無しさん2012/04/17(火) 20:45:39.83
そもそも引数が増えたら多態じゃねえじゃん。
馬鹿だから区別ついてないんだな。
0302デフォルトの名無しさん2012/04/17(火) 20:46:56.30
arityの概念さえしらんのか。まあこの程度のやつだったらそれも仕方ないな。
0303デフォルトの名無しさん2012/04/17(火) 20:47:16.31
ファイルとフォルダの関係のポリモ(同一視)の利点について、どう欠点に変えてくれますか?
0304デフォルトの名無しさん2012/04/17(火) 20:47:37.47
大抵の奴はこの時点でもう手段と目的が逆転しちゃってて人の話なんて聞く耳もたなくなっちゃってるけどね
意地でも多態を実現するために引数を増やさずにグローバル変数・インスタンスを使ってでもやっちゃう・・・
これがもうね・・・技術者として最悪
0305デフォルトの名無しさん2012/04/17(火) 20:50:40.02
>>303
しつこいな
糞じゃん

ごったにしなくても
普通に
フォルダに対してgetFileListでファイル一覧取得できて
フォルダに対してgetFolderListでフォルダ一覧取得できたら
みんな幸せになれんじゃねーの?
ごった煮じゃないとダメなことあるのか?
0306デフォルトの名無しさん2012/04/17(火) 20:51:30.06
あんたも十分聞く耳持ってないよ
安心しろ同類だ
0307デフォルトの名無しさん2012/04/17(火) 20:53:49.61
>>306
そのレスに技術的な指摘が入ることはこの先もないんだよなw
0308デフォルトの名無しさん2012/04/17(火) 20:58:05.32
つっこむなら全レスに突っ込んでけよww
301と302が抜けてるぞ
0309デフォルトの名無しさん2012/04/17(火) 21:07:11.83
>>305
>普通に
>フォルダに対してgetFileListでファイル一覧取得できて
>フォルダに対してgetFolderListでフォルダ一覧取得できたら
>みんな幸せになれんじゃねーの

それをしたくないから合わせるんだけど・・
0310デフォルトの名無しさん2012/04/17(火) 21:08:41.51
>>290
> 少なくともミサイルとホーミングミサイルでは役に立たないみたいだねw

成り立つだろw
なんで成り立たないと思うわけ?

片方はミサイルらしい動きで座標を決める
もう片方は、ホーミングミサイルらしい動きで座標を決める。

あとはその座標にレンダリングするだけ。
0311デフォルトの名無しさん2012/04/17(火) 21:13:17.10
>>305
>しつこいな
>糞じゃん
>
>ごったにしなくても
>普通に
>フォルダに対してgetFileListでファイル一覧取得できて
>フォルダに対してgetFolderListでフォルダ一覧取得できたら
>みんな幸せになれんじゃねーの?
>ごった煮じゃないとダメなことあるのか?

すげーうけるww
ごちゃまぜの利点理解出来ないんだなwww
0312デフォルトの名無しさん2012/04/17(火) 21:20:26.28
ゲームと言えばC++だね。
速度も速いししオブジェクト指向

ゲームプログラマになる前に覚えておきたい技術
ゲーム開発者のためのAI入門
実例で学ぶゲーム3D数学
ゲームコーディング・コンプリート 一流になるためのゲームプログラミング
ゲームプログラミングのための3Dグラフィックス数学
ゲームエンジン・アーキテクチャ

最近ゲーム関連の良書が増えたけど
ことごとくC++ばかりだし。
0313デフォルトの名無しさん2012/04/17(火) 21:21:19.70
ホーミング先の選定なんて引数で渡す必要すら薄いのだが…
そのミサイルオブジェクトのオーナーに尋ねればいいだろ
0314デフォルトの名無しさん2012/04/17(火) 21:24:57.01
>>305
強引に否定してるだけだろ、それwww
利点を消してんじゃん、なにやってんのww
0315デフォルトの名無しさん2012/04/17(火) 21:26:32.58
ホーミングミサイルの仕様から考えると、
ミサイルの周りの状況を認識する機能が必要。

周りの状況を認識するってのは
ホーミングミサイルだけに必要な物じゃないだろうから。
すべてのオブジェクトに周りのオブジェクトの状態を認識するための
インターフェースを基底クラスにつけることになるだろうね。
03162872012/04/17(火) 21:28:53.21
>>303
自分もファイルクラスを継承してフォルダクラスを作ったわ。
そうすると、フォルダクラスが持つ子供リストはファイルクラスの(ポインタ)配列だけで済む。
ファイルの配列とフォルダの配列を別々に持つと、ものすごい気持ち悪い処理になるので、すぐにダメだと分かった。
0317デフォルトの名無しさん2012/04/17(火) 21:32:13.14
>>305
再帰的に作った方が楽ですよ?
0318デフォルトの名無しさん2012/04/17(火) 21:32:19.38
気持ち悪い処理っていうのは、名前とか日時とかいう属性でソートしたりするときの話ね。
0319デフォルトの名無しさん2012/04/17(火) 21:38:19.81
>>317
楽じゃないですよ?

理由ぐらい言ってから、「楽ですよ」と言いなさい。
0320デフォルトの名無しさん2012/04/17(火) 21:40:27.34
www
まだいたのかよ
随分ツッコミが飛んでるぞ
0321デフォルトの名無しさん2012/04/17(火) 21:40:56.79
>>320が今から突っ込むので期待して寝ろ!
0322デフォルトの名無しさん2012/04/17(火) 21:42:58.98
クラスそのものが再帰構造(入れ子)になっている場合、「再帰関数」というものを使う必要がない。
常に自分の子供のことだけを考えて処理を書けばいい。
それだけで、rootから簡単にツリー上の全体の数を調べることができる。
0323デフォルトの名無しさん2012/04/17(火) 21:48:23.61
ごちゃまぜの利点なんて
共通メインルーチンを作る仕組み
それだけだが、それが狙いなのに

共通メインルーチン否定して何がしたいの?
0324デフォルトの名無しさん2012/04/17(火) 21:50:06.14
基底クラスの肥大化を防ぎ、設計をシンプルにします。
0325デフォルトの名無しさん2012/04/17(火) 21:51:12.20
馬脚を表すのが怖くて>>301-302にはレスできない模様ですwwww
もう馬脚を表してるんだから怖がる必要ないのにwwwww
0326デフォルトの名無しさん2012/04/17(火) 22:01:33.62
オブジェクト思考にこだわる奴は糞だが、否定する奴も糞すぎるwww
0327デフォルトの名無しさん2012/04/17(火) 22:03:49.09
何を今更・・
次元の低い言い争いですね
0328デフォルトの名無しさん2012/04/17(火) 22:04:42.86
>>326
お前はビルの屋上から道行く人を眺めて王様気分に浸ってるのがお似合いだよ
0329デフォルトの名無しさん2012/04/17(火) 22:05:22.40
>>326
満足したなら帰れよw
どうせ他に何も言えることがないんだろう?
0330デフォルトの名無しさん2012/04/17(火) 22:14:52.76
>>309
え?なんで?
ちょっとコード書いてみ?
ファイルとフォルダで別のが楽だろ?
0331デフォルトの名無しさん2012/04/17(火) 22:18:37.40
そもそも多態なんてオブジェクト指向特有の概念ではなくて
ただ扱いやすいように整備されてるだけの話なんだけどな

unixのファイルシステムなんて多態の最たるものじゃないか
■ このスレッドは過去ログ倉庫に格納されています