オブジェクト指向について語るスレ


31ななしのよっしん :2016/06/30(木) 11:52:47 ID: iM2uYbP4pO
オブジェクト思考は理解しきってないがクラス概念は本当に楽だな
RPGで言うならクラスい状態だとキャラ一人作るのに
A_str, A_def,・・・と1つ1つステータスを作らないといけなかったのを
クラスを一度作っちゃえばA(str, def,・・・)で一括管理できて事故も減るし
面倒な被ダメ判定はクラス関数に押し付けちゃえば後はワンタッチとか弄ってて楽しい

おかげでよく>>17な状況に陥るww

32ななしのよっしん :2016/06/30(木) 12:06:06 ID: iM2uYbP4pO
あとオブジェクト志向でよく大勢で作業する時に分割出来るから楽って言われるけど
個人や少人数でやるにしてもパーツが使い回せて楽ってのがあるな
プログラムの一部をコピペでも良いんだが変数宣言が変な所に散らばってたりするから
そう言うのを使い回しやすいようにヘッダに切り分けて置くってのも魅だと思う

33ななしのよっしん :2016/07/10(日) 18:30:10 ID: pF4vmaDKf+
オブジェクト指向は設計や概念から学習すべきだ!なんて学者の大嘘で、結局はクラスという物体をプログラマ的にどう便利に使えるかなんだよな
現場ではそれしかできない

34ななしのよっしん :2017/01/28(土) 01:20:19 ID: +fze9+d00D
オブジェクト指向の御利益を理解したいなら、Cとwin32API適当ソフトを作ってから、pythonとQtの組み合わせで同じものを作ってみれば良い

35ななしのよっしん :2017/03/23(木) 00:59:54 ID: QaDxJ3dTMM
それ、大部分はOOPじゃなくてAPIの出来の問題なんで・・・WinAPIも考え方としてはOOP入ってる。クソダサだけど。

36ななしのよっしん :2017/06/06(火) 16:10:28 ID: SrX5yqIHc7
処理だけでなく情報も格納できる、変数の様に振る舞う関数

こんな理解でok?

37ななしのよっしん :2017/06/13(火) 01:22:47 ID: QaDxJ3dTMM
それはどっちかというとクロージャ関係でもないけど。
具体的操作レベルでいうなら、何かのデータ構造と、構造に対してできる操作(関数)をワンセットにしたものがオブジェクト関数データを取るんじゃなくて、構造に関数が生えてる。

38ななし :2017/11/18(土) 22:21:02 ID: dDYGpPa8vg
古きよきプログラマには理解できないだろう
理解できなくてよいのだ、理解できないのが正常な応答なのだから
これは壮大なフィクションなのだ
々がするべきことは便利なライブラリを使い、ゴミみたいな抽化をし腐ったライブラリに唾を吐く、それだけでいい

39ななしのよっしん :2018/03/25(日) 01:16:22 ID: pF4vmaDKf+
データ構造とそのデータ関数をひとまとめにする→いい
その関数を通してしかデータを制御できず、勝手にいじれないようにして必ず通るチェックなどを作れる→いい
それらを使って便利なライブラリを作る→いい
高度な抽化を行いオブジェクト指向設計でソフトウェアの部品化がうんぬん→帰って一人で一生やってろ

40|| :2018/03/31(土) 19:03:38 ID: Og57t/S1Oi
なるほどわからん

41ななしのよっしん :2018/05/26(土) 01:15:50 ID: 65VY1Qfi/e
プログラミングとかなにそれ美味しいのレベルが調べても理解できるわけがなかったわ
最後の希望バカでも分かるように書いてある大百科来たのに全然砕けた文章じゃないやん!もっと日常的な例えとかで解説してる記事が欲しかったの!

42ななし :2018/08/12(日) 02:43:51 ID: dDYGpPa8vg
オブジェクト指向の前提条件をわかってないが多い
そういうに限って関数も理解してない
砕けた解説?オブジェクト指向を使おうとするな、自分でクラスを作ろうとするな、関数として機をまず定義しろ、オブジェクトデータの塊に過ぎない
よく素人本には生徒オブジェクトを定義します、とありthis.namethis.ageとかがメンバとして書かれていることが多い
想像を働かすために生徒という言葉を使うようだが、実際には名前と年を持つものなんてですら要件に合致する
こんなもんはjavascriptでいうところの{"name":"ポチ","age":3}とかいう記述が示すデータ以上の意味を持たない、しかしクラスメソッドを持ってるんだとほえる人間が多い、なるほどクラスだと所属しているクラスによってメソッドの挙動が変化するらしい
だがそれって結局javascriptでいうところの{"classname":"生徒","name":ポチ,"age":3}というような記述が示すデータがあるとして"classname"の内容によって関数実行をスイッチしてるだけだよね、所詮それがオブジェクト指向

43ななしのよっしん :2018/09/05(水) 00:19:41 ID: pF4vmaDKf+
人間.年齢」変数は「経年」関数を通してしか変化させることができず、「経年」変数では「人間.年齢」は増えるだけで決して減ることはない
そして「経年」変数によって「進学」「卒業」「入学」「就職」「留年」「就職浪人の開始」等が行われる
アクセス制御がかかっているので「人間.年齢」がバグったプログラムで減ったりすることはいことが「人間クラス単独で保できる

大体現場で使うのはこの辺と継承まで
継承も現場で使われるのはソースの共通化的で「〇〇Base」なんて作るくらいしか使われない
化がどうのと言い出すを見たら近寄らない方がいい

44ななしのよっしん :2019/02/10(日) 18:54:43 ID: QaDxJ3dTMM
継承の方がむしろ割とどうでもよく、「インターフェースに対してプログラムを書く」ことの方が必要だし、それができないやつは現状使い物にならんと思うけどな。もっというと、自分だったらソースの共通化を的としてベースクラス作る人間は疑ってかかるなぁ。悪いけど。

45ななしのよっしん :2019/03/15(金) 22:21:42 ID: r22ZMJCq5U
>>44の言う通りソースの共通化的で継承を使うのはアンチパターン
単にソースを共通化したいがために継承を使っていくと、リスコフの置換原則に違反する捻れたコードが出来上がっていくだろう。

「『適切な』インターフェースに対してプログラムを書く」ことで、ある変更の影インターフェースの向こう側に波及しなくなることはオブジェクト指向の大きなメリットですわな。

46ななしのよっしん :2019/10/11(金) 11:43:29 ID: glEhW4RBJk
>>32
オブジェクト指向は機分割データ分割ではなく、責務分割するからそのようなメリットが出るんだろうな。
役割が明確になった上で分割されるから、クラスを見たとき、そのクラスはどんな役割を持っているのか分かりやすい。
大勢の開発で楽の根拠はオブジェクト指向による責務分割だと思う。

あと、過去の自分は他人という考え方もできる。
だから個人開発でもオブジェクト指向は使えるのは同意。
オブジェクト指向向は未来の自分も含めた他人にオブジェクトを使わせることに意義があると思う。

47ななしのよっしん :2019/11/12(火) 00:36:01 ID: QK6qkYoffx
>>42
それはむしろ性的…

じゃなくて静的メソッドだな。ただの紐付け情報

48ななしのよっしん :2020/01/23(木) 19:47:13 ID: QaDxJ3dTMM
そもそもビャーネ先生の影カプセル化・継承・多態を三要素と言いだしたのが間違いのもとで、これらは言設計の分析としては正しいが、プログラム書く側にとっては覚えてもあんまり意味ないしむしろ下手に意識すると間違う。結局三つともしてるところは一つで「モジュール間の結合は実装ではなく仕様に対して行うもので、広い意味で『同じ』と見なせるものは同じに扱えるようにしとけ」ということ。
『同じ』とは何なのかといえば、機セットとしてのインターフェースが等しいということで、やってることはOOP以前からある要件定義と何ら変わらない。何ができて欲しいのかという定義が抽化(カプセル化)であり、同一性の補助メカニズムとして継承・多態がつく。OOPやってれば必然的に入っては来るけど、やったらOOPになるって性質ではないし、三つを対等に捉えるのもなんか違う。
だから大事なのは実装仕様は剥がしとけというただこれだけの話であって、普段OSAPI呼ぶような時でもみんなやってるし、その延長で考えてけば別段難しいものではない。

49ななしのよっしん :2020/01/30(木) 11:59:15 ID: hE7yiyIc6p
よく使う処理をひとまとめにする -> 関数

一緒に使うデータをひとまとめにする -> 構造体

データとそのデータの取り扱い方をひとまとめにする -> クラス

種類の違うデータでも同じ使い方が出来ると便利だよね -> ポリモーフィズム

じゃあポリモーフィズムに必要な「同じ使い方」の仕様書を作ろうぜ -> インターフェース

インターフェース通りに設計することを強制しよう -> 継承

なんでも出来るスーパークラスを作るより、特化した機をもつ小さなクラスを組み合わせた方がメンテナンスしやすいよね -> 合成

は大体こんなイメージ

50ななしのよっしん :2020/02/03(月) 00:32:44 ID: kwm5EpKaBs
変数プログラミングという解釈はどうでしょうか?

ノイマンコンピュータプログラムデータとして扱うから
プログラムを格納できる変数があってもいいよね、みたいな。

そのうえで、ポインタで扱ったほうが融通が利きやすいので、
javaなどでは参照として扱わせるという解釈で。

51 ななしのよっしん :2020/04/07(火) 18:18:27 ID: 1APB64X2nE
以下の動画の説明が分かり易かった。
あくまでも大雑把な理解にはなるけど。

>>sm25744960

【IronPython】魔理沙、蛇語に手を出す。part8.py【プログラミング】[ニコ動]

52ななしのよっしん :2020/10/03(土) 09:05:52 ID: QK6qkYoffx
PHPerにこそ覚えて欲しい記述法。自分はオブジェクト指向を採用してから、メンテナンスや追加実装の工数が半減以下にまで短縮された

>>46
まさにそれ。過去の自分は他人、そんな一言一句憶えてないしな

53ななしのよっしん :2021/02/08(月) 11:07:25 ID: lqHAMRldey
プログラミング以外の分野でオブジェクト指向に一番近いものといえば、FF8ジャンクションシステムじゃないだろうか

まずパーティメンバーの強化内容は、ジャンクションされているG.Fにより参照される
そのG.F.が持たせられる効果もまた、ジャンクションされているアビリティによって参照される
さらにそのアビリティの一部(「攻撃J」「追加効果J」など)の効果もまた、ジャンクションされている魔法の内容によって参照される
こんなにして、強化や効果といった抽的な概念を何でもかんでも"モノ"として扱い、参照(FF8で言うところのジャンクション)していくのがオブジェクト指向


プログラミングよくわからない人にも、この例えで伝わってくれたらありがたい
(まぁFF8システム自体が難解だけどな!)

54ななしのよっしん :2021/02/20(土) 12:55:51 ID: QaDxJ3dTMM
むしろそれは「OOPなんてわけわからん」と思わせる駄パターンなのでは・・・w

個人的には、オブジェクトはモノだと説明するのはもうやめた方がいいと思うんだよ。確かに日本語のモノも「事物」のように事柄だろうが抽物だろうがせるんだが、それはどちらかというとthingであってobjectじゃない気がする。
objectというのはつまり的物であり、対物。何かされるターゲットがobject。処理を軸に考えるんじゃなくて、処理されるなにかを軸に考えようというところが重要なので、抽物でもモノなんだ的な説明はなんというか持って回った感じがする。

55ななしのよっしん :2021/03/02(火) 01:41:35 ID: QK6qkYoffx
あちこちでオブジェクト指向の説明あるけど、インスタンスとか雛形と説明するのはやめた方がいい。そうだとすると、記事の例では版木がインスタンスになる

あるサイトでは現場監督と説明してて、そっちの方がまだ正しいとは思った

インターフェースプロトタイプの説明ならまだでもわかるけど

56ななしのよっしん :2021/03/02(火) 21:13:21 ID: inzcQWhwBB
この記事自体、オブジェクト指向特定オブジェクトの性質ことを混同しているような気がするんですが、自分の方が勘違いしているんでしょうか。
staticとかオブジェクトとして定義はするもののオブジェクト指向の説明としては関係がないような。

57ななしのよっしん :2021/03/03(水) 12:07:10 ID: QK6qkYoffx
staticって宣言しないと静的メソッド処理できないぞ

58ななしのよっしん :2021/03/03(水) 18:08:48 ID: inzcQWhwBB
>>57
Javaとか言によってはそうでしょうけれど、トップレベル関数がある言もあるかと思います。

そもそも>>56はそういう話ではなく、静的メソッドオブジェクトの話ではあるが、オブジェクト指向の説明としては蛇足ではないか、そして記事自体もそういった点に徴されるように、Rubyにおけるオブジェクトの性質とプログラミングパラダイムとしてのオブジェクト指向を混同してっているのではないかという話です。

59ななしのよっしん :2021/03/05(金) 15:09:38 ID: ijrbyBe0Ys
まあ混同はされてるけど、、大百科記事はかが執筆料を受け取って責任持って書いてるもんじゃない
と呼んでいるような明確な間違いがあるならともかく、「こうすればよりよい」なんて言ってもも答えないよ

60ななしのよっしん :2021/03/05(金) 22:32:20 ID: inzcQWhwBB
>>59
書いた当人には答える義理くらいはあるかと。
自分がこの記事に手を加えると、元の記述が跡形もなくなりそうなので、書いた当人の見解を聞きたいと思いまして。

>>55
とか雛形ってインスタンスでなくてクラス?

#


[0]TOP
ニコニコ動画モバイル
運営元:ドワンゴ