オブジェクト指向を教えてくれ!★2

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2021/04/27(火) 15:02:28.94ID:mH9VXFld
オブジェクト指向について、調べれば調べるほど疑問が募ります。低レベルで粗末な疑問かも知れませんが、ご教授願いたいです。

・データと振る舞いをまとめる?
まとめると何か良いことあるの?
ファイルあるいはモジュールにはまとまってるよね?
丁度いい単位があるのに、何故わざわざオブジェクトという概念を導入するの?
(Javaには1ファイル1クラスという文化あるらしいけど)

・カプセル化?
モジュールのimport, exportでも実現出来るよね?
(構造体などへのアクセスを制限できれば)

・ポリモーフィズム?
別にデータと振る舞いをまとめなくても実現出来るよね?

・モノのように扱いたい?
モノとして扱いたいときに扱えば良くない? なんでわざわざ全てをオブジェクトにするの?

※前スレ
https://mevius.5ch.net/test/read.cgi/tech/1615881962/
2021/04/27(火) 15:43:46.43ID:G8Jv4YsW
> まとめると何か良いことあるの?

人間の一般的な認識と近くなります。
例えば「犬」には走る、鳴くなどの動詞と
色、大きさ、などの属性があります
人間の認識と近いため、より管理がしやすくなります。

・カプセル化?
・ポリモーフィズム?

オブジェクト指向は概念であるため
オブジェクト指向言語でなくても実現できるのは当たり前です。
オブジェクト指向言語というのは、これらをより簡潔に実現するための機能が
言語自体に備わっているということです。

> ・モノのように扱いたい?
> モノとして扱いたいときに扱えば良くない? なんでわざわざ全てをオブジェクトにするの?
モノとして使いたくないものがないからです。
例えば関数だって、関数名や引数と言った属性を持っています。
2021/04/27(火) 16:35:35.99ID:QOYYH960
これ最初のスレ立てた奴の意思と無関係だよな
2021/04/27(火) 17:41:05.47ID:rZchIKCt
メッセージングを基礎単位として取ることは、より徹底的な遅延束縛を可能にする。というのも、
メッセージそれ自体は意味を持たず、実際にメッセージがオブジェクトに送信されてはじめて、意味が決まるからである。
https://qiita.com/ukyo-su/items/8c861f114809a96d1378

オシッコを出したり止めたりというのは、チンポから力を抜いたりチンポに力を入れたりと、
オシッコはオシッコそれ自体は意味を持たず、オシッコが尿道を介してチンポに送られることによって、
オシッコを出したり止めたりが可能になるということだ。

928 デフォルトの名無しさん 2018/11/21(水) 18:59:11.61 ID:8Yc2p7H1
>>922
>ナンチャッテメッセージングスタイルになったのは

チンポ.オシッコを出す
チンポ.オシッコを止める

さっきトイレでやってきた。


929 デフォルトの名無しさん 2018/11/21(水) 19:07:17.83 ID:8Yc2p7H1
>>915
>単なる動的なメソッド呼び出しをメッセージと称し、ただしコールするメソッドが見つからない場合だけメッセージを
>ハンドリングできる省コストなナンチャッテメッセージングスタイルに落ち着いた。

×
俺.オシッコを止める 俺.オシッコを出す

俺.チンポに力を入れる 俺.チンポから力を抜く
2021/04/27(火) 17:49:26.14ID:rZchIKCt
クリントン大統領の「不適切」というのは、チンポが独立して主体意思でシコシコしてしまったから。
チンポは独立した生き物であり、アメリカ大統領の権限をもってしても、制御することは不可能だ。

クリントンの「不適切な関係」
https://eigo-kobako.blog.so-net.ne.jp/2008-06-21

class チンポ extends クリントン{
     super.不適切な関係;
}



クリントンーーーーーーーーーー
┃             ┃
┃             ┃
┃             ┃
┃             ┃
┃             ┃
ーーーーーーーーーーーーーーー
     ┃チンポ┃
      ̄ ̄ ̄ ̄
『人格を性欲に乗っ取られる』、つまりクリントンはチンポに人格を乗っ取られて、チンポにシコられてしまった!
6デフォルトの名無しさん
垢版 |
2021/04/27(火) 19:44:39.44ID:ijAZSiZo
あわしろ氏「ハイ論破」
2021/04/27(火) 23:39:26.43ID:LZgvro8r
『シコシコ』という擬音はどうでもよい。問題は、

自我    チンポ
↑      ↑   チンポ=自我
チンポ   自我

オブジェクト指向では、この三種類が考えられるということだ。
>チンポ=自我
散歩している時、自分もチンポも所在地は同一である。

https://i.imgur.com/4XhBmP3.jpg
https://i.imgur.com/PPFJZqI.jpg

夏目くんの場合は、チンポが自我を圧倒し、体が自然に滝川さんの股間に近づいていったのだ。

『笑ってごまかすな!!』

と言われても、夏目くんは何と言えば良かったのだろう?

    チンポ≫自我

『チンポが自我を超えてしまった』を簡略化して、チンポがシコシコする!

チンポがシコシコしていると(チンポが自我を超越していると)、息もハァハァになる。
チンポがシコシコしている(チンポが自我を超越している)と、顔もアヘ顔になる。
つまりその顔は『チンポの一部』つまりチンポの皮と同じということ。

博士号の肩書きがあっても、STAP細胞のそれは間違いであり科学者として失格。
チンポと自我の関係について、それが間違いということなら、俺も科学者を自称するのを止めよう。
しかしながらあの夏目くんは、笑ってごまかす以外に何と申し上げたら良かったのか。
2021/04/28(水) 00:02:33.43ID:xybfukyI
こっちでやらないのはなんで?あらすのが目的?

オブジェクトチンポシコシコ隔離病棟
https://mevius.5ch.net/test/read.cgi/tech/1619499726/
2021/04/28(水) 12:47:24.32ID:7PrD92Ui
こっちはもうレスするな
落とせ
2021/04/28(水) 16:45:21.76ID:N9ytASKs
自分はあたまいいと思ってるトンデモさんが
もっとあたまいい人たちに囲まれて袋だたきにされてんだから
そら「ちんこちんこー!」とか言ってバカのふりしないと
精神の均衡保てないだろ。

もうそれ狂ってんだけどね。
2021/04/29(木) 05:47:55.25ID:xPFf86S8
別にいいんじゃない?

もうちょい真面目な話になるけど、今まで言語のスレで他の言語の話はしてもいいかダメかとかでスレが割れたりすることはたまに有ったけど、結局許容されてひとつのスレに戻るんだよ。

なんせ5chはその気になれば規制でもされない限り誰でも自由に書き込みが出来るから、結局のところどんなにスレ内部の取り決めを作ったところで
それが守られなければ許容せざるを得ないってことなんだろうね。

だから5chではスルースキルが問われるんだよ。別にチンポさんを庇護するつもりはないけど、誰かに噛みついてる訳でもないし、
チンポチンポ言ってるだけだから気にしなければそれで済む筈。
もっともたまに「ん?」という書き込みもしてるから俺は一応目を通してるけど。
12デフォルトの名無しさん
垢版 |
2021/04/29(木) 11:21:04.49ID:3QtJSkGq
>>11
>チンポチンポ言ってるだけだから気にしなければそれで済む筈。

オブジェクト指向について、他にわかりやすい説明が有るのか?
2021/04/29(木) 11:24:46.93ID:2aNgQ2En
>>12
こっちにレスしないのはなんで?

オブジェクトチンポシコシコ隔離病棟
https://mevius.5ch.net/test/read.cgi/tech/1619499726/
2021/04/29(木) 12:08:10.08ID:6dL4uTgU
必死になって連投してんのはお前らが褒めてやらないからだよw
すごいねって言って欲しいんやろな
認めてほしいんよねきっと…
15デフォルトの名無しさん
垢版 |
2021/04/29(木) 14:02:20.07ID:NDGBRI+4
あわしろ氏「随意運動」
ハイ論破。
2021/04/29(木) 14:33:21.31ID:ivJoJ/6K
そもそもクソスレの継続立てる>>1がアホ
スレ立ててまで語る話じゃないとわからない連中がいれば同じくアホ
2021/04/29(木) 16:08:05.70ID:ZR2hi6tt
>>16
そう思うんなら来んなや塵芥が
2021/04/29(木) 20:48:38.45ID:2aNgQ2En
やっぱり荒らしたいだけなんだな。はっきりしたわw
19Mb
垢版 |
2021/05/01(土) 15:40:14.87ID:mv8IrWK+
「オブジェクト志向」(「オブジェクト・オリエンテッド」の訳語。
「オブジェクト指向」ともいう)というのは、
「算体主導言語」とも謂われていて、
「もの(オブジェクト)にメッセージを投げる」というふうに理解すると、大規模な
システム開発においては理解がきょうゆうしやすいのではないか?という
「パラダイム」の話ではないかと考えている。
この「パラダイムの共有」という概念を理解していない上層部から、
「オブジェクト指向」とかいった形式的な規約を押しつけられた挙句に、
人格がこじれちゃった人が「チンポシコシコ」なのだと思う。
正直な話、C 言語の構造体みたいなものをメソッドで返そうとすると、
いちいちクラスを定義しなくちゃならないし、「同じプロジェクトで
似たようなクラスがあったら、統合化できないか」みたいなことを
考えざるを得ないわけですよ。
システム屋は一般社会からは疎外された存在ではあるが、
「チンポシコシコ」は、システム開発の現場においても疎外されている、
という「ぼっち」の鬱憤を晴らしたいのだと思う。
生温かくスルーするのがいいと思う。
20Mb
垢版 |
2021/05/01(土) 15:53:26.10ID:mv8IrWK+
関数とかメソッドとかは、「複数の価は返せない」という
縛りがあるので、C 言語の構造体やら、(オブジェクト志向言語の)
クラスやらに頼ることになるわけだが、C 言語とかとは違って、
Java だと「広域変数」というものがない(というか、
渡すのを禁止している)ので、「シングルトン実装」とか
「(DB を含む)ファイル渡し」になっちゃうんだよな。
とはいえ現場によっては頭の古いヒトがいて、
「シングルトン実装は禁止」とかいう話もあるので、
「チンポシコシコ」は、そのあたりで
人格が拗(こじ)れちゃったのだと思う。
みんな、合掌して送りだしてあげようよ。
21Mb
垢版 |
2021/05/01(土) 16:15:31.63ID:mv8IrWK+
「関数」(函数。「ファンクション(機能・機関の漢語訳)」)は、
「入力⇒出力」の関係は一意的なんだが、
「オブジェクト」というのは「内部変数」というのを持てるので、
「setter でメッセージを投げて getter で受ける」といった
ことができる。とはいえ、それだと排他制御が面倒臭いところに
なるので、「基本的に共有しましょうよ」という「static」と、
「他所からチョッカイは出さないでください」というダイナミックな
(new して自分で抱えている)オブジェクトがある。
「オブジェクト志向を教えてくれ」というスレに
「チンポシコシコ」が介入してくるのは、
そのあたりの説明をちゃんと行なって引導を渡す奴が
いないだけじゃないだろうか。
喝を入れて往生させてあげるのが、このスレの住民の
責務ではないだろうか。
22デフォルトの名無しさん
垢版 |
2021/05/02(日) 22:59:31.50ID:liMkj8Q9
>>21
インスタンス!ドミネーション!
2021/05/02(日) 23:08:01.49ID:Z+8Z4XRI
>>1

自分のやりたいことの野望は膨らむ一方で、
それに伴いコーディング実装やらなきゃToDoも膨大化する一方。
どうやって脳内混乱を抑止しつつ作業量を最小化する?!

って経験をしたことないみたいだね。
人海戦術など、所詮は無能の寄せ集め感で圧倒するしか能のない、素人相手にしか通用しない小手先技。
オブジェクト指向こそ、一騎当千の猛者の拠り所となる真のソリューション。
2021/05/03(月) 00:50:26.18ID:bcVlJAyr
オブジェクト指向やったらTODO減るんですか?
25デフォルトの名無しさん
垢版 |
2021/05/03(月) 01:14:47.08ID:s03MGASG
素人に理解しやすい以外の意味は無い。
数学が苦手ですか?ではオブジェクト指向コンポーネントをお使いください。
こういうこと。
2021/05/03(月) 08:14:15.79ID:W5Ke21J5
>>25
C++にせよ、Pythonにせよ、
多次元ベクトルはクラス化して、演算子オーバーロードしたり、規格化メソッド実装したりする方が、
論文のアルゴリズム表記と親和性が高まるじゃん
2021/05/03(月) 11:02:54.29ID:7Cnt8Uq0
>>25
その例えで「数学」は重要なキーワードですか?
例えば「残業」が苦手ですか?という例えでも良くないですか?

「数学」でなければならないならその理由を書く必要があります。
理由がないならただの主張でしかないです。
2021/05/03(月) 11:04:55.03ID:D+irXb0a
数学の大変さは物事を抽象化する能力
残業の大変さは気力、体力的なこと
全然違う
2021/05/03(月) 11:06:46.86ID:fZLVGYii
病室に戻れガイジども
2021/05/03(月) 11:18:50.15ID:6OKMVCkT
>>28
大切なのは数学ではなく抽象化能力ということでいいですか?
2021/05/03(月) 19:19:00.31ID:ssz87/Lo
数学的な意味での抽象化能力
哲学、文学での抽象化能力とはだいぶ違う
2021/05/05(水) 02:49:29.22ID:u8WVa/X2
理学と工学で「理学の方が偉い」とか言いだしかねないアナクロさ
33デフォルトの名無しさん
垢版 |
2021/05/06(木) 12:40:32.20ID:GHdSH9fo
S/N 比 =0
ここまでひどいスレもめずらしい
2021/05/06(木) 12:56:03.92ID:RGbjVayl
ミュートすれば解決
35デフォルトの名無しさん
垢版 |
2021/05/06(木) 13:33:32.64ID:wzHtXBVP
https://youtu.be/OkXz-aag9nQ

バイアグラ工場の煙で、チンポがシコシコw
2021/05/06(木) 13:57:25.64ID:vUaewQZ6
病室に戻りなさい

オブジェクトチンポシコシコ隔離病棟
https://mevius.5ch.net/test/read.cgi/tech/1619499726/
37Mb
垢版 |
2021/05/07(金) 21:42:03.51ID:P+8SzjSX
>>27
> その例えで「数学」は重要なキーワードですか?
「数学」にも、少なくとも三種類あるので、なんともいえない。
計算数学だと、「有効数字」「誤差」「収束速度」「収束値の安定性」みたいな
話になるので、電算屋には切実だ。これ以外にも、「有限組合せ数学」と
いうのがあって、「組合せ論的な爆発」とかいった切実な話がある。
いわゆる「解析数学」というのは、(「近似小数」の範囲で勝負している)
うちらには関係がないのだが、非線形微分方程式の近似計算とかいった
話があるので、ちょっとは齧っておいたほうがいい。
「数学基礎論」は、記号処理関係の練達のハッカーがいて、わりと怖ろしい
領域ではあるのだが、将来を見つめるという意味では、学んでおいて
いいかもしれないと思う。
2021/05/08(土) 13:52:25.54ID:P4YFoXTv
そういやオブジェクト指向の先とかいうアスペクト指向はあんま流行らなかったな
2021/05/08(土) 14:10:15.05ID:a3fCYo+N
アスペ指向?
40デフォルトの名無しさん
垢版 |
2021/05/08(土) 16:46:08.40ID:Jy6pPGdO
アスペ駆動
https://www.youtube.com/watch?v=eNcCEV-FFyA#t=29m
29:00-
2021/05/08(土) 23:36:59.02ID:CN2lF0qs
アスペ指向w
誰もに嫌われて使われない指向
2021/05/08(土) 23:46:36.46ID:VdlQDhAc
>>38
先とかじゃなくてオブジェクト指向とは直交する問題の解決策として出てきたものだっただろ
C#の属性なんかはアスペクト指向の機能だぞ
Lispだとアスペクト指向でやろうとしたことは
MOPがあれば出来る感じだったかな
2021/05/08(土) 23:47:34.31ID:4v7UQksk
>>38
エージェント指向?

オブジェクト指向で「こうしろ」ってコマンドに対応するプログラミングの先で
オブジェクト自体がもっとAI的に自発的解決策を模索するエージェントになる奴
2021/05/09(日) 00:31:50.14ID:p7ljX1hO
アスペクト指向もエージェント指向も「指向」ではなく
オブジェクト指向に追加する追加機能でしかなかったからな

アスペクト指向はオブジェクト指向にライブラリで追加するのではなく
言語レベルで機能を追加するという方針と考えればいいかな?

やりたいこと自体はメタプログラミングの一種で、既存のメソッドの処理を外部から
置き換えて元のメソッドをを実行するようなことができれば実現可能
それを言語レベルで記述できるようにしただけ。あとはアノテーションとかあれば
アスペクト指向と名乗るまでもなく、ライブラリで実現可能だろう

エージェント指向は、クラスのメタ情報と検索機能、それを管理するレジストリがあればいい
オブジェクト指向があれば実行に実際に処理を行うオブジェクトを入れ替えることができる。
しかし「こうしろ」という内容は一体どういうものを想定していたんだろうか?

人間みたいに自分で考えて実行できるオブジェクトなんてまだまだ作れるわけがないので
「引数を与えると足し算をするエージェント」という内容で探すしか無いだろ?
勝手にエージェントがそういうことをしてくれるわけではなく、そういうエージェントを作らなければいけない
普通はライブラリとしてそういう関数て提供されていて呼び出し時にリンクすればいいが、
それをわざわざ検索する?これって別のマシンで動かすための分散オブジェクト技術のことなのではないか?
45デフォルトの名無しさん
垢版 |
2021/05/09(日) 20:56:14.37ID:uaen5AMM
オブジェクト指向だからGetWindowなのかな
Window.Get
サブジェクト指向の方がオブジェクト指向っぽい
46デフォルトの名無しさん
垢版 |
2021/05/09(日) 20:58:21.36ID:uaen5AMM
AppActivateはサブジェクト指向だな
もっと言うと
App.Activate
2021/05/09(日) 21:00:06.80ID:QngfRO5p
https://piedpin.com/top/2019/06/29/subject-and-object/

データの主体(サブジェクト, subject)とは、プログラムなどデータを受け取り、扱う方です。
(人間の絵)

データの対象(オブジェクト, object)とは、ファイルや物理的な資料、データベースなどデータを持っていてデータを差し出す方です。
(フォルダの絵)

らしいよ
2021/05/09(日) 21:02:17.84ID:QngfRO5p
こっちの方がいいかな? IBMだし
https://www.ibm.com/docs/ja/zos/2.3.0?topic=controls-subjects-objects

サブジェクトとオブジェクト
サブジェクト は、システム・リソースへのアクセスを必要とするエンティティーです。 例えば、サブジェクトには次のものがあります。

・人間のユーザー
・開始済みプロシージャー
・バッチ・ジョブ
・z/OSR UNIX デーモン

通常、ユーザー という語は、サブジェクト と同じ意味ですが、暗黙で人間を指定する場合があります。
本書では、特に指示のある場合を除き、ユーザー とサブジェクト を同義で使用します。
オブジェクト とは、アクセスを制御する必要があるシステム・リソースです。例えば、オブジェクトには次のものがあります。

データ・セット

・z/OS UNIX ファイルおよびディレクトリー
・コマンド
・端末
・プリンター
・DASD ボリューム
・磁気テープ
49デフォルトの名無しさん
垢版 |
2021/05/10(月) 17:31:40.18ID:4SElKdXM
>>44
>人間みたいに自分で考えて実行できるオブジェクトなんてまだまだ作れるわけがないので

785 名無し三等兵 sage 2019/12/03(火) 08:03:27.78 ID:sujZBpWD
>>762
>「胸がドキドキする」は良いが、「チンポがシコシコする」はダメな理由を、50字以内で述べろ!

チンポにチンポ自身を扱く機能が備わっていないので自動詞は不適切だから(34文字)

胸(心臓)には鼓動する機能があるため自動詞の適用対象だが
チンポには勃起する機能はあっても自身を扱く機能はないので「チンポ『が』勃起する」は成立しても「チンポ『が』シコシコする」は成立しない
夢精した状況を「チンポ『が』シコシコした」と称したければ「チンポがエロい夢を見させ夢精した」=「脳ではなくチンポが思考を司りエロい夢を見させて夢精させた」という状況で可となる

脳でなくチンポで物を考える生物についてなら「チンポ『が』シコシコする」は成り立つ
如何にもだつお的じゃないか
50デフォルトの名無しさん
垢版 |
2021/05/10(月) 20:58:13.09ID:WQl4RFpm
Man.Shiko(Chin) とすると
Man.Rec(Recorder) なのか
Man.Push(Recorder.Rec) ではないか
開発対象は Recorder.Rec
従って Man.Run(Chin.Shiko) と言える
開発対象は Chin.Shiko

いろんな物を壊せるフォトリアルなゲームでは、
各クラスの壊すメソッドと、各クラスの壊れるメソッドの両方が必要
普通の死体、バラバラ、灰、液状、と壊すメソッドで分かれてるものはある
バラバラは元の形が残りつつ変形するので、凝れるメソッドが必要
51Mb
垢版 |
2021/05/13(木) 21:51:41.86ID:kEXKw6jf
>>47
中学校の英語の時間に「五文型」というのを習ったと思うが、
「サブジェクト(S)」は「主語」で、
「オブジェクト(O)」は目的語。
とはいえ、このあたりの議論を深めないと、「オブジェクト志向」とか
「メッセージング」とかいった話は理解しづらいように思う。
52デフォルトの名無しさん
垢版 |
2021/05/13(木) 22:00:35.49ID:nRL0z2P7
24 名無しさん@ゴーゴーゴーゴー! (JP 0H82-LX7o [153.145.207.163]) 2019/11/23(土) 16:54:55.03 ID:l9637O/lH
https://i.imgur.com/1VuRIrP.jpg
2021/05/14(金) 11:25:07.67ID:N2rlLeCr
隣のスレで拾った
ほぼ同意
https://www.akiradeveloper.com/post/ruby-gomi/
https://it.srad.jp/story/19/08/09/185229/
2021/05/14(金) 11:28:19.20ID:GWgcGB6j
>>53
Ruby最悪やろ


サリンとRuby
1995年3月、ある事件が起きた。 そう。地下鉄サリン事件だ。
5年生の時だったか、麻布の学園祭に行く時に 日比谷線を使ったが、
まだサリンが残留してるんじゃないかと思って、 怖かったのを覚えている。

同じ1995年に生まれたものがある。 Rubyだ。

サリンはあの時、多くの人の命を奪い、そして後遺症を遺した。
Rubyはどうだろうか。 国産言語としてゴリ押しし、 不幸なことに、
日本では広く使われてしまった。 今に至っても使われてしまっている。
これによって日本の技術はよりガラパゴス化し、
日本のIT業界に負のダメージを与えた。 サリンと同じく、多くの後遺症を遺した。
2021/05/14(金) 14:12:43.44ID:G1LerHLY
ルビーそんなにあかんか
2021/05/14(金) 14:53:33.02ID:Z9qkiVJO
サリンやで。そりゃアカンやろ
2021/05/14(金) 15:43:20.04ID:G1LerHLY
例え話で分かった気になるのは危ない言うなればサリンみたいなもの
2021/05/14(金) 15:45:02.25ID:G1LerHLY
Railsを作ったのは外人でルビーは海外で絶賛されてたけどなあ、ガラパゴスジャパンはルビーの存在さえ知らなかった
59デフォルトの名無しさん
垢版 |
2021/05/14(金) 16:26:14.00ID:gc8egfqV
70 名無しヒーリング 2021/04/26(月) 09:45:57.57 ID:jZDy/LpM
先生、実際にシコシコするのはチンポでなく俺の右手だと思います。

✖チンポがシコシコする
○ 俺の右手がチンポをシコシコする

71 名無しヒーリング 2021/04/26(月) 09:56:38.18 ID:jZDy/LpM
あと、「胸がドキドキする」と「チンポをシコシコする」は比較対象になりません。
「胸がドキドキする」は「チンポがヒリヒリする」のように状態・感覚を擬音語で現しているのであって、
「チンポをシコシコする」は「胸をモミモミする」の様に人間や動物が対象に対して何かを行う行為の表現だと思います。
2021/05/14(金) 21:36:10.44ID:0V6CtYxp
データと振る舞いをまとめることこそがオブジェクト指向の中核だよ。
それによって何が良くなるかというと、データ構造の仕様変更があっても、そのデータ構造を持ってる部分、つまり1クラスだけ直せば皆直るように作れること。
データ構造とそれにまつわる処理を1つに閉じ込めることを言語的に強制することによって実現出来るの。
手続き型言語だとこの強制が無いから、同じデータを扱う同じ処理があちこちに乱立する可能性が高まるの。

ただし、綺麗なクラス設計をするためにはデータ構造の粒度の見極めがとても重要で、例えば姓と名だけを持つ氏名クラスのような小さい粒度のクラスもたくさん用意しないと実現出来ないから注意してね。
クラスの粒度を見極める一つの指標として、その物を人間が呼ぶときの単位に着目するの。例えば1伝票とか1明細とか、1社とか1部署とか1氏名とか。
そしてクラス間の多重度(カージナリティ)を表せば、つまりクラス図を書けば綺麗な設計・実装が出来るよ。例えば、
1伝票に対して複数明細
1社に対して複数部署
1人に対して1氏名
など。

他にもコツはあるけど上記が基本。
ポリモーフィズムとか継承はその後に覚えれば充分。上記が出来ない人はむしろ継承を使わない方が綺麗に作れるよ。データ構造の継承はやっていいんだけど、委譲で作れる処理を継承で実現するのは保守性が下がるからやらないことね。

綺麗なクラス設計が出来ると、「1ヶ所直せば皆直る」を実現出来るよ。
でもRDBがこれを邪魔する時が多々あるのが実際の開発での悩みだなぁ。
61デフォルトの名無しさん
垢版 |
2021/05/17(月) 19:56:25.36ID:L6+NUUlt
var chin=chins.get(ikemen);
chin.width++;
chin.height++;
chins.delete(ikemen); これが気持ち悪いですな
chin.delete(); こうしたいですな

しかし要素数が1000とかある場合
chin.delete(); こうするには1000個ものdelete関数が持たれる?
chins.delete(ikemen); それで配列系はこっちが多いのかな
62デフォルトの名無しさん
垢版 |
2021/05/18(火) 18:07:46.31ID:TifTAtUd
>>61
>chins.delete(ikemen); これが気持ち悪いですな
>chin.delete(); こうしたいですな

自分はそうは思いません!
配列から要素を削除するから
chins.delete(ikemen);
これが自然

> chin.delete(); こうするには1000個ものdelete関数が持たれる?

言語による
昔のVBとかJavaScriptでprototypeを使わずにオブジェクトに直接関数を定義したら
インスタンスの数×関数の数だけメモリが消費される

Javaはクラスの定義ごとに関数が作られる
chinをレシーバ・オブジェクトと呼ぶことにすると
レシーバ・オブジェクトは、関数の引数の一つとして渡される
インスタンスを作りまくっても関数が使用するメモリは増えない
2021/05/19(水) 19:39:33.77ID:c1QHS7NB
デザインパターンで遊んでいればOOPなんてすぐじゃね? 
その後はクリーンアーキテクチャーとかDDDとかに進めばええ。
MS$のAdventureWorkshopででも遊んでいれば誰も近寄れなくなるさ。 恐れ多くて。
教科書上で多態性理解より、依存性逆転の原則とか現場ルールを理解する方が大事。
64Mb
垢版 |
2021/05/19(水) 20:06:56.68ID:gE1os4Gp
オブジェクト志向というのは、あくまで方向性の問題なんだよな。
C 言語には longjump しかなくてキャッチ&スローがないとか、
Java には goto 文がないとかいうのは、たぶん「結果論」なのだと思う。
Java には「メッセージング」という概念があるのと、
「広域変数」という概念がないというのは、
うちら老害に苦しんでいたプログラマにとっては
恩恵だと思われ。
65デフォルトの名無しさん
垢版 |
2021/05/19(水) 20:31:43.45ID:weokdyri
>>64
指向な
2021/05/19(水) 21:07:41.07ID:isp/WQPk
究極 vs 歯垢
67デフォルトの名無しさん
垢版 |
2021/05/21(金) 12:27:17.58ID:RXUR0j2G
WEBと基幹業務では感覚が違うだろうけど
共通部分があれば共通化するのは当然として

基幹業務の各業務はほぼ全て個別で、他の業務機能と合成するような要件はほぼない
その上、各業務のほぼ全てに同じ伝票が絡む
ゆえに、1か所改修すれば連鎖的に共通部分に反映できる、なんて部分はほぼない
くせに、ほぼ全てに絡む

DB脳は整理脳
これが苦手な人がオブジェクト指向を使ったからって整理できない
例えば.NETの、DB構造のコピーを置くDataSetや、DataAdapterの自動SQL
整理どころか厄介なゴミを増やしてる

これらはDBをコントロールのように見たい気持ちなのかな
逆に画面コントロールをレコードセットのように見る中継クラスなら作った
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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