無理やりオブジェクト指向にしたから出てきた問題を解決して凄い凄い言ってるだけ。
単なるマッチポンプ。
カプセル化(英語:encapsulation)とは、オブジェクト指向を構成する概念の一つで、
オブジェクト内部のデータを隠蔽したり(データ隠蔽)、オブジェクトの振る舞いを隠蔽したり、
オブジェクトの実際の型を隠蔽したりすることをいう。
偏差値の低い学校向けの情報処理系教科書において「大変すばらしいものであり絶対に使うように」と大体的に宣伝された。
一方、カリフォルニア大学バークレー校の有識者を中心としたインターネットを作った人たちは「階層化の有害性」として
「絶対に使うな」としている。大雑把にいうと、その時は良くても、将来的な改修の際に隠蔽されたデータに
アクセスできないと解決できない問題が出てきて、結果的にデスマーチに陥るというのである。
オブジェクト指向の発案者であるアラン・ケイもコーディング規約(頭文字にアンダースコアを付けるなどの命名規則)で
縛る程度にすることを推奨しており、アラン・ケイが関わったオブジェクト指向プログラミング言語にはどれも「private」
という概念はない。
https://monobook.org/wiki/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96
前前前前スレ
オブジェクト指向ってクソじゃね?
https://mevius.5ch.net/test/read.cgi/tech/1535085129/
前前前スレ
オブジェクト指向ってクソじゃねぇよ? Part2
https://mevius.5ch.net/test/read.cgi/tech/1539872441/
前前スレ
オブジェクト指向ってクソじゃねぇかよPart3
https://mevius.5ch.net/test/read.cgi/tech/1542884872/
前スレ
オブジェクト指向ってクソじゃねぇかよPart4
https://mevius.5ch.net/test/read.cgi/tech/1556462315/
オブジェクト指向ってクソかよPart5
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2019/10/08(火) 15:46:57.38ID:YglSDU9b2019/10/10(木) 02:11:13.44ID:clBk4+T+
ようするに、今話をしてるのは、オブジェクト指向のカプセル化とはどういうことなのか?
という話なのだから、特定の言語での実装の話をするのは間違い。
"オブジェクトがカプセル化されていれば" インターフェースを変えること無く
内部の実装を変更することが可能になる。
言い方を逆にすると、インターフェースを変えること無く内部の実装を変更することが可能であれば
"そのオブジェクトはカプセル化されている" ということ
という話なのだから、特定の言語での実装の話をするのは間違い。
"オブジェクトがカプセル化されていれば" インターフェースを変えること無く
内部の実装を変更することが可能になる。
言い方を逆にすると、インターフェースを変えること無く内部の実装を変更することが可能であれば
"そのオブジェクトはカプセル化されている" ということ
2019/10/10(木) 05:56:07.99ID:mQOxxhmy
継承は、10年くらい前はmixinだのtraitだの流行ったけど、今やどうでもいいわって感じだな
2019/10/10(木) 08:58:56.73ID:WGsUN34T
1のテンプレ、時代遅れすぎないか?
2019/10/10(木) 09:35:51.74ID:6kYzxc6O
最先端だろ
2019/10/10(木) 22:18:20.63ID:EN4r3i1C
>>40
カプセル化の概念を狭く捉えすぎ
Javaのgetter/setterやRubyのアクセサ、C#のプロパティなんかは
カプセル化を実現するための手段の一つであってそれイコールカプセル化じゃない
それにJSでもRubyでもC#でも直接インスタンス変数にアクセスしてるコードを
getter/setterやアクセサやプロパティ経由に変更した場合に呼び出し側に変更が必要な場合もあるから
デフォルトでカプセル化されてるとか考えるのは間違ってるよ
人にもう少し勉強したほうが良いよとか言う前に自分が勉強しようね
カプセル化の概念を狭く捉えすぎ
Javaのgetter/setterやRubyのアクセサ、C#のプロパティなんかは
カプセル化を実現するための手段の一つであってそれイコールカプセル化じゃない
それにJSでもRubyでもC#でも直接インスタンス変数にアクセスしてるコードを
getter/setterやアクセサやプロパティ経由に変更した場合に呼び出し側に変更が必要な場合もあるから
デフォルトでカプセル化されてるとか考えるのは間違ってるよ
人にもう少し勉強したほうが良いよとか言う前に自分が勉強しようね
2019/10/10(木) 23:56:14.42ID:2XAtZlBW
…カプセル化じゃない
…間違ってるよ
…勉強しようね
…間違ってるよ
…勉強しようね
2019/10/11(金) 01:26:24.59ID:cg6Wcsaq
>>46
それな。自分の意見を何一つ言ってないwww
それな。自分の意見を何一つ言ってないwww
2019/10/11(金) 01:37:36.70ID:cg6Wcsaq
たまにクラスにprivateが無いからカプセル化できないと言ってるやつがいるが、
「_で始まる変数名はprivateとする」という規約を作れば実現可能
C言語でオブジェクト指向をするという話と同じなんだよ。
C言語はオブジェクト指向言語ではないのでクラスなどが無いが
だからといってC言語でオブジェクト指向ができないわけじゃない。
言語機能として、privateやプロパティはカプセル化専用の機能であるが
カプセル化専用の機能がないからと言って、カプセル化ができないわけじゃない。
カプセル化専用の機能がなくとも、「_で始まる変数名はprivateとする」
「publicフィールドを使わずに、関数経由で読み書きする」という"規約"でカプセル化出来る。
関数経由で読み書きするのは、カプセル化専用の機能(の一つ)が無いJavaで
カプセル化するための"規約"に過ぎず、多くの言語では関数経由にする必要がない。
いずれにしろ、カプセル化をどうやって実現するかは言語の機能によって変わるが
カプセル化の概念は、内部構造とインターフェースを分離するして
外から内部構造を直接いじらないようにすること
「_で始まる変数名はprivateとする」という規約を作れば実現可能
C言語でオブジェクト指向をするという話と同じなんだよ。
C言語はオブジェクト指向言語ではないのでクラスなどが無いが
だからといってC言語でオブジェクト指向ができないわけじゃない。
言語機能として、privateやプロパティはカプセル化専用の機能であるが
カプセル化専用の機能がないからと言って、カプセル化ができないわけじゃない。
カプセル化専用の機能がなくとも、「_で始まる変数名はprivateとする」
「publicフィールドを使わずに、関数経由で読み書きする」という"規約"でカプセル化出来る。
関数経由で読み書きするのは、カプセル化専用の機能(の一つ)が無いJavaで
カプセル化するための"規約"に過ぎず、多くの言語では関数経由にする必要がない。
いずれにしろ、カプセル化をどうやって実現するかは言語の機能によって変わるが
カプセル化の概念は、内部構造とインターフェースを分離するして
外から内部構造を直接いじらないようにすること
2019/10/11(金) 07:28:14.10ID:Txg9tUjJ
プログラムの基礎であるメンバのスコープまたは
シンボルの命名規則を使ったアクセス制限規約のこと言ってんのかよ
元々簡単な筈のことなのに説明が下手にくどくて、
煙に巻かれて読んで損したような気分
シンボルの命名規則を使ったアクセス制限規約のこと言ってんのかよ
元々簡単な筈のことなのに説明が下手にくどくて、
煙に巻かれて読んで損したような気分
2019/10/11(金) 08:30:07.55ID:m78/Olsy
2019/10/11(金) 12:59:52.11ID:kot4gcq1
larabelとかよくできてるじゃん
2019/10/11(金) 14:21:29.12ID:dN/CgRLR
カプセル化はデータとデータに対する操作をセットにすること
privateでデータを隠すのはデータ隠蔽
インターフェースで実装を隠すのは情報隠蔽
privateでデータを隠すのはデータ隠蔽
インターフェースで実装を隠すのは情報隠蔽
2019/10/11(金) 14:35:13.43ID:QtmRuluN
× カプセル化はデータとデータに対する操作をセットにすること
○ オブジェクト指向はデータとデータに対する操作をセットにすること
データとデータに対する操作をセットにすることは、カプセル化とは関係ない
○ オブジェクト指向はデータとデータに対する操作をセットにすること
データとデータに対する操作をセットにすることは、カプセル化とは関係ない
2019/10/11(金) 14:38:29.98ID:QtmRuluN
privateでデータを隠すのはデータ隠蔽
インターフェースで実装を隠すのは情報隠蔽
そしてカプセル化という概念は、
「データ隠蔽」と「情報隠蔽」を使って実現するもの
privateやインターフェースがなくても規約等で「データ隠蔽」と
「情報隠蔽」相当のことを行うことも可能だが面倒になりやすい。
そのために言語が用意してくれる機能がprivateやインターフェース
インターフェースで実装を隠すのは情報隠蔽
そしてカプセル化という概念は、
「データ隠蔽」と「情報隠蔽」を使って実現するもの
privateやインターフェースがなくても規約等で「データ隠蔽」と
「情報隠蔽」相当のことを行うことも可能だが面倒になりやすい。
そのために言語が用意してくれる機能がprivateやインターフェース
2019/10/11(金) 14:42:40.80ID:jSXBX1w1
オレオレ定義の押しつけあいで言葉遊びしてて虚しくねぇの?
2019/10/11(金) 14:45:08.49ID:QtmRuluN
一般的な定義を言ってるんだが?
2019/10/11(金) 15:05:22.26ID:dN/CgRLR
>>53
それどこ情報?
それどこ情報?
2019/10/11(金) 15:06:27.08ID:dN/CgRLR
>>54
カプセル化の定義は何?
カプセル化の定義は何?
2019/10/11(金) 15:11:03.25ID:dN/CgRLR
ちなみにワイはwikipedia
オブジェクト指向はオブジェクトを大事にします
ってことなので値と操作をセットにすることとは違うよ
オブジェクト指向はオブジェクトを大事にします
ってことなので値と操作をセットにすることとは違うよ
2019/10/11(金) 15:24:31.99ID:QtmRuluN
2019/10/11(金) 15:28:02.10ID:QtmRuluN
>>60のリンク先を更に探すとここにたどり着いた
http://web.archive.org/web/20080906224409/http://www.itmweb.com/essay550.htm
http://web.archive.org/web/20080906224409/http://www.itmweb.com/essay550.htm
2019/10/11(金) 15:29:01.27ID:mjZX3Aly
読めない(´・ω・`)
2019/10/11(金) 15:30:20.85ID:dN/CgRLR
>>60
僕のが正しいですよね
僕のが正しいですよね
2019/10/11(金) 15:34:07.32ID:QtmRuluN
いいえ
2019/10/11(金) 15:53:18.86ID:dN/CgRLR
>>64
いいえじゃないが
いいえじゃないが
2019/10/11(金) 15:54:47.89ID:dN/CgRLR
ちなみに僕はJavaのブロンズの資格持ちです
Javaの試験では僕が示したとおりに解答しないと落ちます
Javaの試験では僕が示したとおりに解答しないと落ちます
2019/10/11(金) 15:56:16.21ID:dN/CgRLR
僕の定義は一般的ですよ
全世界で行われてるプログラミングの最も人気のある試験での模範解答なので
全世界で行われてるプログラミングの最も人気のある試験での模範解答なので
2019/10/11(金) 15:58:39.66ID:dN/CgRLR
そしてあなたはカプセル化を説明できていない
2019/10/11(金) 16:01:06.01ID:dN/CgRLR
カプセル化とは何か?
2019/10/11(金) 16:03:57.37ID:mjZX3Aly
ウインダムとかミクラスとかアギラとか
2019/10/11(金) 16:06:36.86ID:QtmRuluN
>>41で書いたとおり
"オブジェクトがカプセル化されていれば" インターフェースを変えること無く
内部の実装を変更することが可能になる。
言い方を逆にすると、インターフェースを変えること無く内部の実装を変更することが可能であれば
"そのオブジェクトはカプセル化されている" ということ
"オブジェクトがカプセル化されていれば" インターフェースを変えること無く
内部の実装を変更することが可能になる。
言い方を逆にすると、インターフェースを変えること無く内部の実装を変更することが可能であれば
"そのオブジェクトはカプセル化されている" ということ
2019/10/11(金) 16:15:29.39ID:dN/CgRLR
>>71
それ情報隠蔽やで
それ情報隠蔽やで
2019/10/11(金) 16:15:57.04ID:dN/CgRLR
試験落ちてまうど
2019/10/11(金) 16:17:48.83ID:QtmRuluN
2019/10/11(金) 16:19:56.39ID:dN/CgRLR
>>74
君の思いはわかったけど独りよがりの思い込みに価値などない、君はJavaブロンズに受からない
君の思いはわかったけど独りよがりの思い込みに価値などない、君はJavaブロンズに受からない
2019/10/11(金) 16:20:25.93ID:dN/CgRLR
君は完全に間違っている
2019/10/11(金) 16:21:29.10ID:dN/CgRLR
カプセル化は値と操作の一体化のこと
2019/10/11(金) 16:26:03.75ID:dN/CgRLR
Javaブロンズの前で君たちの浅はかな理解など取るに足らぬ
2019/10/11(金) 16:43:07.90ID:LwZAFcHp
カプセル化おじさんはちからをためている。
2019/10/11(金) 17:10:40.83ID:ALv2Fv/b
どうしてキャプセレチオンしないのよーッ!
2019/10/11(金) 17:48:10.46ID:6SqPsHXs
ところで、ここまでオブジェクト指向をクソだとする根拠があがらないのはなぜ?
オブジェクト指向プログラマーvs誰がとは言わんがオブジェクト指向プログラマー気取り が激突するスレかな?
オブジェクト指向プログラマーvs誰がとは言わんがオブジェクト指向プログラマー気取り が激突するスレかな?
2019/10/11(金) 17:57:40.40ID:ljKmFHFW
>>81
そもそも、オブジェクト指向にメリットが無いからな
強いて言えば単に費やす時間が無駄なだけ
オブジェクト指向とはソースファイルのどこに処理を書くか?
ただそれだけの技術である
→実はどこに書いたって動く(核爆)
そもそも、オブジェクト指向にメリットが無いからな
強いて言えば単に費やす時間が無駄なだけ
オブジェクト指向とはソースファイルのどこに処理を書くか?
ただそれだけの技術である
→実はどこに書いたって動く(核爆)
2019/10/11(金) 18:02:01.44ID:dN/CgRLR
オブジェクト指向がクソなのはインスタンス変数の存在のせい
できるだけメソッドの行数を減らすとかインスタンス変数を使わないメソッドはオブジェクト指向じゃないとか巷で言われてるせいでそれを真に受けた意識高い初心者がゴミのようなコードを量産してしまうところにオブジェクト指向の限界を僕は感じましたよ
できるだけメソッドの行数を減らすとかインスタンス変数を使わないメソッドはオブジェクト指向じゃないとか巷で言われてるせいでそれを真に受けた意識高い初心者がゴミのようなコードを量産してしまうところにオブジェクト指向の限界を僕は感じましたよ
2019/10/11(金) 18:14:37.08ID:dN/CgRLR
オブジェクト指向で作られたhello worldを見ればわかるがオブジェクト指向は過度な抽象化を促進する抽象化圧力つまりアブストラクションプレッシャリングアクセラレイトがかかるからそれをいなせる胆力がないと使いこなすのは難しい
2019/10/11(金) 18:21:24.34ID:6SqPsHXs
>>83
なるほど、staticおじさんがstaticおじさんになった時の主張に似ているね。
オブジェクト指向の定義はさておき、インスタンス化のメリットはクラスという型から必要な数だけオブジェクトを生成できること。
そのメリットが無いのならJavaやC#のMathみたいにstatic化すればいいじゃんって思うし、オブジェクト指向をクソ呼ばわりする根拠が弱い気がするが...。
実際、自分もMathみたいにインスタンス化が不要であればstaticにするし。
まぁ、staticおじさんみたいに全部static化はしないが。
>>82
まぁ、既存の方法で困っていないのならオブジェクト指向は採用しなくてもいいんじゃないかな?
クソ呼ばわりしたら、なんで?って聞くけど。
コーディングの行数は比較したことがないからなんとも言えないが、オブジェクト指向導入で工数削減なら実現した事例は、いくらでもあるよ。
書いたコードを再利用しやすいのがオブジェクト指向のメリットの一つだからね。
なるほど、staticおじさんがstaticおじさんになった時の主張に似ているね。
オブジェクト指向の定義はさておき、インスタンス化のメリットはクラスという型から必要な数だけオブジェクトを生成できること。
そのメリットが無いのならJavaやC#のMathみたいにstatic化すればいいじゃんって思うし、オブジェクト指向をクソ呼ばわりする根拠が弱い気がするが...。
実際、自分もMathみたいにインスタンス化が不要であればstaticにするし。
まぁ、staticおじさんみたいに全部static化はしないが。
>>82
まぁ、既存の方法で困っていないのならオブジェクト指向は採用しなくてもいいんじゃないかな?
クソ呼ばわりしたら、なんで?って聞くけど。
コーディングの行数は比較したことがないからなんとも言えないが、オブジェクト指向導入で工数削減なら実現した事例は、いくらでもあるよ。
書いたコードを再利用しやすいのがオブジェクト指向のメリットの一つだからね。
2019/10/11(金) 18:54:22.09ID:QtmRuluN
2019/10/11(金) 20:44:45.28ID:kv91xo2J
細胞が膜で覆われてるのに似てる。
中身のものを直接扱えないのもな。
中身のものを直接扱えないのもな。
2019/10/11(金) 20:59:44.57ID:Obz6LqVu
カプセル化を説明するときはリモコンや自販機や車とか、あとお店のサービスで普通例えない?
的外れな例えはむしろ害となりがち
的外れな例えはむしろ害となりがち
2019/10/12(土) 00:05:00.41ID:hC2MVz5n
変なのがワラワラ湧いてきたな。
オブジェクト指向はまるで池沼ホイホイだな。
オブジェクト指向はまるで池沼ホイホイだな。
2019/10/12(土) 03:38:52.22ID:m58DXjin
カプセル化と継承を同じレベルで考えてるやつがいるからな。
継承は「行うこと」だが、カプセル化は「行うこと」じゃなくて概念。
カプセル化という概念がわかっていて、その概念に従って設計すれば
こういうメリットがありますよーっていう話だから
カプセル化という概念に従った設計をするときに使える便利な道具が
privateやインターフェース。だからといって別に使う必要があるわけじゃない。
多く言語ではカプセル化という概念を取り入れて言語を作っているから、
publicプロパティを使っていても、カプセル化に従うことが出来るが、
Javaではsetter/getterというワークアラウンド(_で始まる名前をprivate変数とするという規約と同じ)が
必要になるが、多くの言語ではそんな事気にしなくてもカプセル化という概念を満たすコードが書ける
継承は「行うこと」だが、カプセル化は「行うこと」じゃなくて概念。
カプセル化という概念がわかっていて、その概念に従って設計すれば
こういうメリットがありますよーっていう話だから
カプセル化という概念に従った設計をするときに使える便利な道具が
privateやインターフェース。だからといって別に使う必要があるわけじゃない。
多く言語ではカプセル化という概念を取り入れて言語を作っているから、
publicプロパティを使っていても、カプセル化に従うことが出来るが、
Javaではsetter/getterというワークアラウンド(_で始まる名前をprivate変数とするという規約と同じ)が
必要になるが、多くの言語ではそんな事気にしなくてもカプセル化という概念を満たすコードが書ける
2019/10/12(土) 06:02:26.53ID:hC2MVz5n
カプセル化とは何か人によって解釈がさまざまで、よく話が発散するが、
カプセル化を含むオブジェクト指向の害を弾劾するこのスレにおいて
自分の考えこそカプセル化として正しいとか主張すること自体
スレ違いなのは理解できている?
カプセル化を含むオブジェクト指向の害を弾劾するこのスレにおいて
自分の考えこそカプセル化として正しいとか主張すること自体
スレ違いなのは理解できている?
2019/10/12(土) 06:31:54.75ID:1JRUpTA+
腹いてえ下痢だよゲリぃ
グリーンピース食べすぎたわ
グリーンピース食べすぎたわ
2019/10/12(土) 06:34:02.05ID:hC2MVz5n
ボッチしとけよ
2019/10/12(土) 09:27:37.09ID:tUC1lSfU
2019/10/12(土) 09:40:03.04ID:PKccBz0E
オブジェクト戦士(バカ)多いな
2019/10/12(土) 09:48:44.50ID:tUC1lSfU
> 変なのがワラワラ湧いてきたな。
> オブジェクト指向はまるで池沼ホイホイだな。
> オブジェクト戦士(バカ)多いな
ここは罵り合うだけのスレかな?
やーい、お前のソースコードs t a t i c!
> オブジェクト指向はまるで池沼ホイホイだな。
> オブジェクト戦士(バカ)多いな
ここは罵り合うだけのスレかな?
やーい、お前のソースコードs t a t i c!
2019/10/12(土) 10:28:24.31ID:7TGqmTiW
カプセル化おじさんのレス見て思うのは
自分の無知や間違いを認められなくなったら技術者としては終わりだなってこと
歳を取ると老害が増える理由
自分の無知や間違いを認められなくなったら技術者としては終わりだなってこと
歳を取ると老害が増える理由
2019/10/12(土) 10:31:11.04ID:TBjVU2MA
↑このように自分の意見を何一つ言わず、
相手を批難するばかりになったらお終い
相手を批難するばかりになったらお終い
2019/10/12(土) 10:33:55.10ID:EMzTIefb
↑このように自分の意見を何一つ言わず、
相手を批難するばかりになったらお終い
相手を批難するばかりになったらお終い
100デフォルトの名無しさん
2019/10/12(土) 10:37:18.66ID:TBjVU2MA >>99
俺は意見を言ってるからそれは的外れ
俺は意見を言ってるからそれは的外れ
101デフォルトの名無しさん
2019/10/12(土) 10:40:44.08ID:Sr/UvC0O >>97も意見じゃね?
老害の件はわからんが。
老害の件はわからんが。
102デフォルトの名無しさん
2019/10/12(土) 10:41:35.07ID:TBjVU2MA >>101
オブジェクト指向に関する意見に決まってるだろw
オブジェクト指向に関する意見に決まってるだろw
103デフォルトの名無しさん
2019/10/12(土) 10:47:40.84ID:Sr/UvC0O > オブジェクト指向に関する意見に決まってるだろw
???
???
104デフォルトの名無しさん
2019/10/12(土) 10:58:35.93ID:nGOXFHJU ここはオブジェクト指向のスレなんだから
カプセル化についての主張をするのは正しい
だけど、それは間違いだーっていうだけで
何が正しいのかの自分の意見を言わないのは老害でしかない。
という話だよ
カプセル化についての主張をするのは正しい
だけど、それは間違いだーっていうだけで
何が正しいのかの自分の意見を言わないのは老害でしかない。
という話だよ
105デフォルトの名無しさん
2019/10/12(土) 11:08:34.26ID:6fabclhr106デフォルトの名無しさん
2019/10/12(土) 11:17:25.67ID:Sr/UvC0O107デフォルトの名無しさん
2019/10/12(土) 11:55:42.30ID:PKccBz0E 相変わらずオブジェクト戦士はバカばっかりだな
108デフォルトの名無しさん
2019/10/12(土) 12:02:36.13ID:68Eagdnq おじさんってだけで拒否反応や反抗心から若者の意見を理解しない老害扱いするけど、
若者がおじさんの主張に耳を傾けてないのは結局おじさんと同じことしてるよね
おじさんの局所的な経験則やノウハウにも局所解としての妥当性を認めていいんじゃないかな?
銀の弾丸はないんだし
自分は関数型言語は型理論を触った程度の理解をしつつ、
オブジェクト指向推進派だったけど、長いことやってると
確かにオブジェクト指向に疑問を感じるときがある
例えば、複数のオブジェクトで協調動作させようとすると、
クラス内にカプセル化できなくなって、〜コントローラや〜マネージャーとか
どちらかというと抽象的なオブジェクトで溢れかえる設計ってとてもよく見るし自分も書く
C#のstaticクラスのstaticメソッドとかはそれへの部分的な解決法になるけど、
オブジェクト指向っていうより関数型的な感じがする
若者がおじさんの主張に耳を傾けてないのは結局おじさんと同じことしてるよね
おじさんの局所的な経験則やノウハウにも局所解としての妥当性を認めていいんじゃないかな?
銀の弾丸はないんだし
自分は関数型言語は型理論を触った程度の理解をしつつ、
オブジェクト指向推進派だったけど、長いことやってると
確かにオブジェクト指向に疑問を感じるときがある
例えば、複数のオブジェクトで協調動作させようとすると、
クラス内にカプセル化できなくなって、〜コントローラや〜マネージャーとか
どちらかというと抽象的なオブジェクトで溢れかえる設計ってとてもよく見るし自分も書く
C#のstaticクラスのstaticメソッドとかはそれへの部分的な解決法になるけど、
オブジェクト指向っていうより関数型的な感じがする
109デフォルトの名無しさん
2019/10/12(土) 12:09:11.67ID:vBnCHMzu 曰く、銀の弾丸はない
でも、金の睾丸は?
でも、金の睾丸は?
110デフォルトの名無しさん
2019/10/12(土) 12:24:36.42ID:6fabclhr111デフォルトの名無しさん
2019/10/12(土) 12:50:30.72ID:7TGqmTiW112デフォルトの名無しさん
2019/10/12(土) 12:51:06.93ID:6fabclhr113デフォルトの名無しさん
2019/10/12(土) 13:25:11.09ID:PKccBz0E オブジェクト指向にメリットなんかねー時点で議論など無駄
114デフォルトの名無しさん
2019/10/12(土) 13:36:07.11ID:68Eagdnq >>110
オブジェクトの内部構造に関係ない協調動作に関する処理を
どこに配置するべきかって話
専用のコントローラや専用のマネージャークラスが頻繁に作られるけど、
別のアプローチ(C#のstaticクラスのstaticメソッドとか)が可能なこともあるし、
別のパラダイムも検討する価値あるんじゃないかなと思うようになった
他の例をあげるなら、特殊な数値クラスを作ったとして二項演算子などの
演算子を数値クラス内にカプセル化するべきかって話も
協調動作の問題と重なってる部分があると思う
(ここまで行くと言語側に手を加えるレベルの話になるけど)
オブジェクトの内部構造に関係ない協調動作に関する処理を
どこに配置するべきかって話
専用のコントローラや専用のマネージャークラスが頻繁に作られるけど、
別のアプローチ(C#のstaticクラスのstaticメソッドとか)が可能なこともあるし、
別のパラダイムも検討する価値あるんじゃないかなと思うようになった
他の例をあげるなら、特殊な数値クラスを作ったとして二項演算子などの
演算子を数値クラス内にカプセル化するべきかって話も
協調動作の問題と重なってる部分があると思う
(ここまで行くと言語側に手を加えるレベルの話になるけど)
115デフォルトの名無しさん
2019/10/12(土) 13:50:47.60ID:hC2MVz5n オブジェクト指向が人の間に広まっていくうちに
どうしてだんだん変なやり方に変わってゆき
非科学的で都市伝説みたいな方法論になってしまったのか
よく分かる流れだな
どうしてだんだん変なやり方に変わってゆき
非科学的で都市伝説みたいな方法論になってしまったのか
よく分かる流れだな
116デフォルトの名無しさん
2019/10/12(土) 14:12:10.68ID:6fabclhr 複雑なものをシンプルに扱えるようにしましょうという
人間の心の話なのになんで科学がでてくるの?
人間の心の話なのになんで科学がでてくるの?
117デフォルトの名無しさん
2019/10/12(土) 14:26:06.65ID:Y/6Ne90r >>108
> C#のstaticクラスのstaticメソッドとかはそれへの部分的な解決法になるけど、
> オブジェクト指向っていうより関数型的な感じがする
オブジェクト指向に関数型を適用してはいけないなんてルールは無いと思う。
そんなこと言い出したらOOPする際はラムダ式使うなって話になりそう。
あと、Mathクラスの解釈だが...
自分はMtahクラスみたいにstatic化するべきクラスでも、最初は非staticで設計する。
つまり、こうなる。
Math m = new Math();
int x = m.abs(引数);
でも、これだとstaticおじさんの言うとおり、オブジェクト指向ってしっくりこないんです状態。
※元ネタのstaticおじさんは具体例は挙げなかったが。
そこで、オブジェクト指向プログラマーは気を効かせ、static化する。
int x = Math.abs(引数);
つまり、static化は省略できるものは省略しよう...という、オブジェクト指向プログラマーの気遣い。
そういう解釈でいいと思うよ。
まぁ、どうしても「そんなのオブジェクト指向じゃねえ!」と言うのならオブジェクト指向の型を破ると解釈してもいいけどね。
このスレ的にはOOPの解釈を曖昧にするのは駄目な気もするが、個人的には扱いやすいクラスさえ作れれば何でもいいや。
> C#のstaticクラスのstaticメソッドとかはそれへの部分的な解決法になるけど、
> オブジェクト指向っていうより関数型的な感じがする
オブジェクト指向に関数型を適用してはいけないなんてルールは無いと思う。
そんなこと言い出したらOOPする際はラムダ式使うなって話になりそう。
あと、Mathクラスの解釈だが...
自分はMtahクラスみたいにstatic化するべきクラスでも、最初は非staticで設計する。
つまり、こうなる。
Math m = new Math();
int x = m.abs(引数);
でも、これだとstaticおじさんの言うとおり、オブジェクト指向ってしっくりこないんです状態。
※元ネタのstaticおじさんは具体例は挙げなかったが。
そこで、オブジェクト指向プログラマーは気を効かせ、static化する。
int x = Math.abs(引数);
つまり、static化は省略できるものは省略しよう...という、オブジェクト指向プログラマーの気遣い。
そういう解釈でいいと思うよ。
まぁ、どうしても「そんなのオブジェクト指向じゃねえ!」と言うのならオブジェクト指向の型を破ると解釈してもいいけどね。
このスレ的にはOOPの解釈を曖昧にするのは駄目な気もするが、個人的には扱いやすいクラスさえ作れれば何でもいいや。
118デフォルトの名無しさん
2019/10/12(土) 14:35:40.11ID:6fabclhr はぁ?absをオブジェクト指向にするなら
Number n = new Integer(-123)
n.abs() やろ
Number n = new Integer(-123)
n.abs() やろ
119デフォルトの名無しさん
2019/10/12(土) 14:40:25.05ID:Y/6Ne90r >>118
ソウダネー。
ソウダネー。
120デフォルトの名無しさん
2019/10/12(土) 14:44:19.05ID:6fabclhr >>119
そうだよ。Rubyとか勉強してみな
そうだよ。Rubyとか勉強してみな
121デフォルトの名無しさん
2019/10/12(土) 14:44:35.81ID:hC2MVz5n122デフォルトの名無しさん
2019/10/12(土) 14:49:19.34ID:6fabclhr そうあってほしいと>>121が考えてるだけ
123デフォルトの名無しさん
2019/10/12(土) 14:50:23.73ID:Y/6Ne90r124デフォルトの名無しさん
2019/10/12(土) 14:50:31.28ID:hC2MVz5n 今まさにオブジェクト指向によってもたらされている混乱から目をそむけないほうがいいよ
125デフォルトの名無しさん
2019/10/12(土) 20:22:58.57ID:BYtPECuz >>85
>オブジェクト指向の定義はさておき、
ところで「チンボがシコシコする」という日本語表現は、文法的に正しいのか?
チンボ「を」シコシコするのではなくて、チンボ「が」シコシコする。この場合、「チンボ」は主語となる。
オブジェクト指向で言う「集約」は2種類あって、全体(俺)と部分(チンボ)が繋がっている場合と、
全体(俺)と部分(チンボ)が別々になっている場合とが考えられる。けれども「チンボ」はそれ自体
が独立した生き物であり、所有者の意思とは無関係に、勃起して「シコシコする」。
例えば寝てる時にエロい夢みて朝起きてみたらチンコが勃起して射精してたとか。
違うか?
「胸がドキドキする」は良いが、「チンボがシコシコする」はダメな理由を、50字以内で述べろ!
>オブジェクト指向の定義はさておき、
ところで「チンボがシコシコする」という日本語表現は、文法的に正しいのか?
チンボ「を」シコシコするのではなくて、チンボ「が」シコシコする。この場合、「チンボ」は主語となる。
オブジェクト指向で言う「集約」は2種類あって、全体(俺)と部分(チンボ)が繋がっている場合と、
全体(俺)と部分(チンボ)が別々になっている場合とが考えられる。けれども「チンボ」はそれ自体
が独立した生き物であり、所有者の意思とは無関係に、勃起して「シコシコする」。
例えば寝てる時にエロい夢みて朝起きてみたらチンコが勃起して射精してたとか。
違うか?
「胸がドキドキする」は良いが、「チンボがシコシコする」はダメな理由を、50字以内で述べろ!
126デフォルトの名無しさん
2019/10/12(土) 20:28:17.23ID:1JRUpTA+127デフォルトの名無しさん
2019/10/12(土) 20:31:23.42ID:BYtPECuz つまりオブジェクト指向とは、俺の股間に付いているモノなのである!
. , ャ ィE5!..
.. ,,.e;〆 .、 w===|====!. π .e、x&
.. ^~ ! ``= π ,, カ. _ _ ̄オ⌒|! `ヘ
. fラ⌒ ̄l「~~~^. ,.タ. .ル .ll ~\_ 〃 〃. ^..
. .オ.. ,...__,xf~. ^ f! 、
. '^´  ̄ ̄..
.. l|.. r=キ'⌒..
. `!、 ~~~~~~⌒... l}
⌒heィ~. .+s_、_e. .^+--w=f `ヲse、._ _、... ′
チンポは独立した生き物であり、本人の意思とは無関係に、自らの意思で勃起してシコシコする!
. , ャ ィE5!..
.. ,,.e;〆 .、 w===|====!. π .e、x&
.. ^~ ! ``= π ,, カ. _ _ ̄オ⌒|! `ヘ
. fラ⌒ ̄l「~~~^. ,.タ. .ル .ll ~\_ 〃 〃. ^..
. .オ.. ,...__,xf~. ^ f! 、
. '^´  ̄ ̄..
.. l|.. r=キ'⌒..
. `!、 ~~~~~~⌒... l}
⌒heィ~. .+s_、_e. .^+--w=f `ヲse、._ _、... ′
チンポは独立した生き物であり、本人の意思とは無関係に、自らの意思で勃起してシコシコする!
128デフォルトの名無しさん
2019/10/12(土) 20:35:24.78ID:1JRUpTA+ 質問に答えてください!
129デフォルトの名無しさん
2019/10/12(土) 22:42:46.45ID:RvFyS8G3 人類の歴史を作ってきたのはおじさんだからな
おじさんの言うことを聞いていればだいたい間違いはないが、重大な間違いを犯すのもまたおじさん
おじさんの言うことを聞いていればだいたい間違いはないが、重大な間違いを犯すのもまたおじさん
130デフォルトの名無しさん
2019/10/12(土) 22:45:21.43ID:BYtPECuz >>128
だからオブジェクト指向は俺の股間に付いているのだ!
だからオブジェクト指向は俺の股間に付いているのだ!
131デフォルトの名無しさん
2019/10/13(日) 03:57:42.23ID:3vnN9KRU だからそれは、糞だってば おじぃちゃん
132デフォルトの名無しさん
2019/10/13(日) 09:50:19.58ID:kfwaB+Y7 カプセル化って
中に有るものを見たり使ったり出来ないようにしないと意味が無い
getter,setterで使い捲くるのでは余り意味が無い(初期設定はしないといけないからsetterなりコンストラクタで設定する必要は有る)
それではグローバル変数となんら変わりは無い
ただそれをどうやればいいのか?
と聞かれるとセオリーや具体的な手法が存在していない
それがオブジェクト指向プログラミングが糞と言われてしまう原因になってる
現状では属人的に出来る人だけが使えるようになってしまっている
中に有るものを見たり使ったり出来ないようにしないと意味が無い
getter,setterで使い捲くるのでは余り意味が無い(初期設定はしないといけないからsetterなりコンストラクタで設定する必要は有る)
それではグローバル変数となんら変わりは無い
ただそれをどうやればいいのか?
と聞かれるとセオリーや具体的な手法が存在していない
それがオブジェクト指向プログラミングが糞と言われてしまう原因になってる
現状では属人的に出来る人だけが使えるようになってしまっている
133デフォルトの名無しさん
2019/10/13(日) 10:07:37.44ID:0tGtu6dL >>132 の発言を自分がちゃんと理解しているか怪しいのだが...
> getter,setterで使い捲くるのでは余り意味が無い(初期設定はしないといけないからsetterなりコンストラクタで設定する必要は有る)
> それではグローバル変数となんら変わりは無い
んん?具体例がほしいな。
こういうこと?
class test{
private:
int x;
public:
int getX(){
return x;
}
void setX(int a){
x = a;
}
}
これってあんまり意味ねーよね?って話?
> getter,setterで使い捲くるのでは余り意味が無い(初期設定はしないといけないからsetterなりコンストラクタで設定する必要は有る)
> それではグローバル変数となんら変わりは無い
んん?具体例がほしいな。
こういうこと?
class test{
private:
int x;
public:
int getX(){
return x;
}
void setX(int a){
x = a;
}
}
これってあんまり意味ねーよね?って話?
134デフォルトの名無しさん
2019/10/13(日) 10:40:41.09ID:OhlF8Q6H >>132
まーた間違ってる。
グローバル変数がなぜ悪かというと、プロジェクト全体から
読み書きできてしまうのでどこで参照してるかわからないから。
つまりスコープの範囲が広すぎるという問題。パブリックであることと何の関係もない。
それにカプセル化は、隠さなくて良いものまで隠せと言ってるわけじゃない。
隠すもの(内部構造)と隠さななくて良いもの(インターフェース)を
きっちりワケましょう、それによってメンテナンス性が上がりますという概念
すべて隠さなくていいオブジェクトだって存在する。それはそうするのが正しいので
カプセル化を破壊してることにはならない。隠すべき内部構造がないと言うだけ。
なんで隠してなければ、カプセル化破壊だと思うんだろうか?
getter,setterってまたJavaの話をしてるんだろうけど、
それはJavaという言語にカプセル化を実現するための機能が不足してるから
規約でカバーしてるだけ。他のオブジェクト指向言語であれば
お前の言うgetter,setterが無い言語もある。
お前がオブジェクト指向を理解してない=お前が糞なのであって
それをオブジェクト指向のせいにするな。
あと知識が狭すぎる。Javaしか知らないんだろ。
まーた間違ってる。
グローバル変数がなぜ悪かというと、プロジェクト全体から
読み書きできてしまうのでどこで参照してるかわからないから。
つまりスコープの範囲が広すぎるという問題。パブリックであることと何の関係もない。
それにカプセル化は、隠さなくて良いものまで隠せと言ってるわけじゃない。
隠すもの(内部構造)と隠さななくて良いもの(インターフェース)を
きっちりワケましょう、それによってメンテナンス性が上がりますという概念
すべて隠さなくていいオブジェクトだって存在する。それはそうするのが正しいので
カプセル化を破壊してることにはならない。隠すべき内部構造がないと言うだけ。
なんで隠してなければ、カプセル化破壊だと思うんだろうか?
getter,setterってまたJavaの話をしてるんだろうけど、
それはJavaという言語にカプセル化を実現するための機能が不足してるから
規約でカバーしてるだけ。他のオブジェクト指向言語であれば
お前の言うgetter,setterが無い言語もある。
お前がオブジェクト指向を理解してない=お前が糞なのであって
それをオブジェクト指向のせいにするな。
あと知識が狭すぎる。Javaしか知らないんだろ。
135デフォルトの名無しさん
2019/10/13(日) 10:50:13.80ID:OAJhlsQO 俺も昔はグローバル変数についてそういう認識だったけど
そもそもスコープがどうであれ
ドキュメントに何もねぇ変数を把握する事自体
やってらんねぇよクソッタレって認識に変わった
本質はドキュメントに書いてないことが問題であって
スコープが仕様を形成するものであってはならない
そもそもスコープがどうであれ
ドキュメントに何もねぇ変数を把握する事自体
やってらんねぇよクソッタレって認識に変わった
本質はドキュメントに書いてないことが問題であって
スコープが仕様を形成するものであってはならない
136デフォルトの名無しさん
2019/10/13(日) 10:57:17.16ID:OhlF8Q6H >>135
イミフ。有名なオープンソースのコードを見て良いコードとは
コメントが書かれてないコードだと知ったほうが良いよ。
そんな物無くてもメンテナンスしやすいような構造になってる。
あとスコープが仕様を形成するなんて話は誰もしてない。
イミフ。有名なオープンソースのコードを見て良いコードとは
コメントが書かれてないコードだと知ったほうが良いよ。
そんな物無くてもメンテナンスしやすいような構造になってる。
あとスコープが仕様を形成するなんて話は誰もしてない。
137デフォルトの名無しさん
2019/10/13(日) 10:57:38.28ID:OhlF8Q6H × コメントが書かれてない
○ コメントが重要なところにしか書かれてない
○ コメントが重要なところにしか書かれてない
138デフォルトの名無しさん
2019/10/13(日) 10:59:10.44ID:0tGtu6dL コメントに頼らなくてもある程度理解できるコードと言いたいのでは?
コメントはあったらあったで助かるよ。
コメントはあったらあったで助かるよ。
139デフォルトの名無しさん
2019/10/13(日) 11:01:53.95ID:OAJhlsQO >>136
バカじゃん
テメーが考えたコメントをソースに書いてんのか?
コメントってのは設計書の文言をコピペしてこそ意味があるんだよ
ソースにあるコメントで設計書を検索してヒットしない成果物いりませぇん
バカじゃん
テメーが考えたコメントをソースに書いてんのか?
コメントってのは設計書の文言をコピペしてこそ意味があるんだよ
ソースにあるコメントで設計書を検索してヒットしない成果物いりませぇん
140デフォルトの名無しさん
2019/10/13(日) 11:15:03.63ID:HooVs/ny 設計書に書いてあるなら、どこそこの設計書見れでいいじゃん
コピペ作業に金払わされてるとか、経営者が可哀想でならん
コピペ作業に金払わされてるとか、経営者が可哀想でならん
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 ★2 [Hitzeschleier★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 【社会】40代以上のおじさん・おばさんは叩いてオッケーという風潮はなぜ加速したのか [七波羅探題★]
- 自分に自信がない女の子、陽キャ美容室で80cmのエクステを付けた結果wwwwwwwwwwwwwwwwwww [329329848]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 【実況】博衣こよりのえちえち歌枠🧪
- 【朗報】外務省局長、中国側の要求を断固拒否。「高市さんの答弁は日本政府の立場を変えるものではないし、撤回しない」 [519511584]
- 農林水産省「春頃にはコメ価格落ち着くのでは」新米の取引価格、過去最高を更新。 [256556981]
