カプセル化(英語:encapsulation)とは、オブジェクト指向を構成する概念の一つで、オブジェクト内部のデータを隠蔽したり(データ隠蔽)、オブジェクトの振る舞いを隠蔽したり、オブジェクトの実際の型を隠蔽したりすることをいう。
かつて偏差値の低い学校向けの情報処理系教科書において「カプセル化は大変すばらしいものであり絶対に使うように」と大体的に宣伝された。
一方、カリフォルニア大学バークレー校の有識者を中心とした「インターネットを作った人たち」は「階層化の有害性」として「カプセル化は絶対にやめろ」としている。
https://monobook.org/wiki/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)
探検
カプセル化の有害性、オブジェクト指向は愚かな考え
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2020/06/18(木) 23:47:36.69ID:l/2SQUll151デフォルトの名無しさん
2020/06/25(木) 10:20:16.04ID:XTsRyKlX >>148
> >>145
> いやー、クラス内で状態を保持するクラスが大量に呼ばれてて
> 本来はそれらの全ケースを網羅する必要があるが作業者の裁量で省略されてる状態じゃないっすか?
何いってるんだ、こいつ。
クラスの基本的な仕組みから理解していないのか。
状態はインスタンスの数だけ持つことになるけど、呼ばれるロジックは一つだよ?
一つのロジックだけをテストすればいいのに、君はstatic化することで、わざわざ一つの状態につき一つのロジックを用意しようとしている。
つまり、君は一つのインスタンスにつき、一つのロジックを記述することで膨大な数のテストをしなければいけない状況を自分で作っている訳だ。
お前のやり方の方が無理ですわ。
> >>145
> いやー、クラス内で状態を保持するクラスが大量に呼ばれてて
> 本来はそれらの全ケースを網羅する必要があるが作業者の裁量で省略されてる状態じゃないっすか?
何いってるんだ、こいつ。
クラスの基本的な仕組みから理解していないのか。
状態はインスタンスの数だけ持つことになるけど、呼ばれるロジックは一つだよ?
一つのロジックだけをテストすればいいのに、君はstatic化することで、わざわざ一つの状態につき一つのロジックを用意しようとしている。
つまり、君は一つのインスタンスにつき、一つのロジックを記述することで膨大な数のテストをしなければいけない状況を自分で作っている訳だ。
お前のやり方の方が無理ですわ。
152デフォルトの名無しさん
2020/06/25(木) 10:27:24.45ID:Q34w5rfS153デフォルトの名無しさん
2020/06/25(木) 10:28:11.21ID:Q34w5rfS >>151
バカの相手はできんわ
バカの相手はできんわ
154デフォルトの名無しさん
2020/06/25(木) 10:29:59.55ID:XTsRyKlX しかも、1つの状態につき、一つのロジックを書くってことは...似たようなクラスが10個必要になったら、そのクラスのロジックを10回、コピペするわけだ。
で、その後、ロジックを修正することになった場合...10回、コードを書き直すの?
そっちの方が無理ですわ。
いっそのこと、staticにしないで、10個の状態が1個のロジックを参照するようにしておけば、ロジックの修正は一回で済む。
そっちの方が断然、楽だね。
で、その後、ロジックを修正することになった場合...10回、コードを書き直すの?
そっちの方が無理ですわ。
いっそのこと、staticにしないで、10個の状態が1個のロジックを参照するようにしておけば、ロジックの修正は一回で済む。
そっちの方が断然、楽だね。
155デフォルトの名無しさん
2020/06/25(木) 10:31:50.71ID:XTsRyKlX156デフォルトの名無しさん
2020/06/25(木) 10:38:02.77ID:H2Spozu7 >>152
もしかしてインスタンスの意義がわかってないのか?
他でも使ってるなら安全牌はクラスC用のクラスAクラスBの複製だけどw
まさしくこの状態を作りたいからクラスAクラスBのインスタンスをつかうんだけどな
もしかしてインスタンスの意義がわかってないのか?
他でも使ってるなら安全牌はクラスC用のクラスAクラスBの複製だけどw
まさしくこの状態を作りたいからクラスAクラスBのインスタンスをつかうんだけどな
157デフォルトの名無しさん
2020/06/25(木) 10:41:15.81ID:Q34w5rfS >>156
え?何言ってるの?
え?何言ってるの?
158デフォルトの名無しさん
2020/06/25(木) 11:34:09.20ID:emOdy//g クラス使わない人ってどうするんだろ
構造体?
全部インタプリタみたいな感じ?
構造体?
全部インタプリタみたいな感じ?
159デフォルトの名無しさん
2020/06/25(木) 11:40:28.84ID:h5MGZkZK スレ主の愚痴はオブジェクト指向かどうかと関係ない
単に設計やテストのやり方を知らないだけ
単に設計やテストのやり方を知らないだけ
160デフォルトの名無しさん
2020/06/25(木) 12:22:45.24ID:9YSX2wtH >>138
> 内部の状態が見えないのにテストなんかできないだろ
ん?全部publicにしておけばテストできるって話じゃないの?
もしくはprivateであっても、privateを読み書きできる機能があればテストできるでしょ?
> 内部の状態が見えないのにテストなんかできないだろ
ん?全部publicにしておけばテストできるって話じゃないの?
もしくはprivateであっても、privateを読み書きできる機能があればテストできるでしょ?
161デフォルトの名無しさん
2020/06/25(木) 12:25:19.77ID:XTsRyKlX クラス使っても、staticにするとか訳のわからない事を言い出すし、根本的にオブジェクト指向を理解していない人達が愚痴っているだけだよな。
むしろ、何でもstaticにするのはC言語やC++言語から入った初心者なら誰もがやる失敗。
そんな初心者の失敗をいい歳したおっさんが、オブジェクト指向を批判しながらstaticを勧めるから駄目なんだよ。
我々からすれば、俺らの黒歴史時代の経験を何で上から目線で偉そうに語っているんだ?って感じだね。
流石に、上から目線で語る程、俺の黒歴史は酷くなかったぞ。
むしろ、何でもstaticにするのはC言語やC++言語から入った初心者なら誰もがやる失敗。
そんな初心者の失敗をいい歳したおっさんが、オブジェクト指向を批判しながらstaticを勧めるから駄目なんだよ。
我々からすれば、俺らの黒歴史時代の経験を何で上から目線で偉そうに語っているんだ?って感じだね。
流石に、上から目線で語る程、俺の黒歴史は酷くなかったぞ。
162デフォルトの名無しさん
2020/06/25(木) 12:43:43.74ID:KZb+gCmD カプセル化が要らない、と言うのなら、
誰もがデータを読み書きできる状態でどうやってアトミック処理を保証するのか
を教えて欲しいな。
もしかしたら大発明かも。
誰もがデータを読み書きできる状態でどうやってアトミック処理を保証するのか
を教えて欲しいな。
もしかしたら大発明かも。
163デフォルトの名無しさん
2020/06/25(木) 12:49:36.79ID:Q34w5rfS >>160
内包されるよりいくらかCool
ただ、そこまでpublicにできるならstaticにしてほしい
実行時にstatesがnoneでないと正しく動かないんですよこのメソッドって
言われても知らねーよそんなのって感じ
じゃあstatesはどうやってnoneにするんだべって
俺に調べさせるのやめてもらっていい?
もっと言えばstaticにすればそんなことないじゃん?
内包されるよりいくらかCool
ただ、そこまでpublicにできるならstaticにしてほしい
実行時にstatesがnoneでないと正しく動かないんですよこのメソッドって
言われても知らねーよそんなのって感じ
じゃあstatesはどうやってnoneにするんだべって
俺に調べさせるのやめてもらっていい?
もっと言えばstaticにすればそんなことないじゃん?
164デフォルトの名無しさん
2020/06/25(木) 13:01:46.41ID:9YSX2wtH >>163
内包したらテストできないだろ?
内包したらテストできないだろ?
165デフォルトの名無しさん
2020/06/25(木) 13:06:39.24ID:XTsRyKlX そもそも、クラスって正常に動く前提で使うものであって、なんで、クラスを使う側がクラス内部動作をテストしないといけないのかわからん。
クラスのテストは、クラスを実装する側の責任だろうに。
...というツッコミをそろそろしてもいいかな?
クラスのテストは、クラスを実装する側の責任だろうに。
...というツッコミをそろそろしてもいいかな?
166デフォルトの名無しさん
2020/06/25(木) 13:17:56.03ID:p+gLKGcc167デフォルトの名無しさん
2020/06/25(木) 13:23:03.90ID:p+gLKGcc >>163
そのstatesがnoneでなければならないという仕様は、そのクラスの使い方として外部に明示すべき仕様だろう。そそういう情報が示されていないならドキュメントの不備だし、そういう仕様が公開されていても外部からstatesの値を参照または設定できないのなら設計の不備だろう。
延々と繰り返し指摘しているように、それはオブジェクト指向そのものの問題でなく正しく設計、運用がされていない問題だろう。
そのstatesがnoneでなければならないという仕様は、そのクラスの使い方として外部に明示すべき仕様だろう。そそういう情報が示されていないならドキュメントの不備だし、そういう仕様が公開されていても外部からstatesの値を参照または設定できないのなら設計の不備だろう。
延々と繰り返し指摘しているように、それはオブジェクト指向そのものの問題でなく正しく設計、運用がされていない問題だろう。
168デフォルトの名無しさん
2020/06/25(木) 13:29:58.05ID:XTsRyKlX >>166
あっ、ほんとだ。
あっ、ほんとだ。
169デフォルトの名無しさん
2020/06/25(木) 15:28:55.17ID:xmAi/11M カプセル化の最大のメリットは中で何をしているかどうなっているかは気にせずに
外からは引数を与えると仕様通りの値が戻ってくるというところだよね?
外からは引数を与えると仕様通りの値が戻ってくるというところだよね?
170デフォルトの名無しさん
2020/06/25(木) 16:47:53.33ID:CiEXbKUP グローバル変数に格納されている値で関数の挙動が変わるより悲惨だぞ。
グローバル変数が見えないんだから。
グローバル変数が見えないんだから。
171デフォルトの名無しさん
2020/06/25(木) 16:52:12.11ID:BM3o+zlw ん?
172デフォルトの名無しさん
2020/06/25(木) 17:00:47.93ID:XTsRyKlX ID変えて振り出しに戻るって奴?
173デフォルトの名無しさん
2020/06/25(木) 17:03:53.35ID:p+gLKGcc ここまで話の通じない奴だと思うと相手するのがバカらしくなってくるね。まさに徒労という言葉がふさわしい。
174デフォルトの名無しさん
2020/06/25(木) 19:27:44.23ID:RQlIhWFK175デフォルトの名無しさん
2020/06/25(木) 19:35:56.42ID:oGWS7APt 全部staticってどうするんだろう
メソッドの引数すごいことになってそう
メソッドの引数すごいことになってそう
176デフォルトの名無しさん
2020/06/25(木) 20:15:30.81ID:LQ8CyLE7 オブジェクト指向のあらゆる用語が
ノムリッシュみたいになってると思う
JavaScriptが発展して、クラス名と同じ名前の
ファイル名にしなくていい事が分かったわけじゃん
それどころかクラスすら必要なしでオブジェクトが作れる事が
分かったわけじゃん
クラス名と同じ名前のコンストラクタなん定義しなくても
オブジェクトが作れる事が分かったじゃん
オブジェクトとは詰まるところ連想配列と大して違いが
ないキーと値で構成された入れ物でしかない事がわかった。
この「連想配列と違いがない」というシンプルな真実が
どれだけありがたいことか
クラスを始めとする様々なルールは
ソフトウェア設計上の重要な概念かと思ってたら
単なるJavaの変な言語仕様でしかなかったわけだ。
変数を「フィールド」
関数を「メソッド」
関数を「コンストラクタ」
こう言い換える必要がどこにある?
こんなノムリッシュなバズワードに
今までどれだけ煙にまかれて
シンプルな真実が見えなくなってたことか
ノムリッシュみたいになってると思う
JavaScriptが発展して、クラス名と同じ名前の
ファイル名にしなくていい事が分かったわけじゃん
それどころかクラスすら必要なしでオブジェクトが作れる事が
分かったわけじゃん
クラス名と同じ名前のコンストラクタなん定義しなくても
オブジェクトが作れる事が分かったじゃん
オブジェクトとは詰まるところ連想配列と大して違いが
ないキーと値で構成された入れ物でしかない事がわかった。
この「連想配列と違いがない」というシンプルな真実が
どれだけありがたいことか
クラスを始めとする様々なルールは
ソフトウェア設計上の重要な概念かと思ってたら
単なるJavaの変な言語仕様でしかなかったわけだ。
変数を「フィールド」
関数を「メソッド」
関数を「コンストラクタ」
こう言い換える必要がどこにある?
こんなノムリッシュなバズワードに
今までどれだけ煙にまかれて
シンプルな真実が見えなくなってたことか
177デフォルトの名無しさん
2020/06/25(木) 20:22:00.90ID:9YSX2wtH >>176
3行でまとめて
3行でまとめて
178デフォルトの名無しさん
2020/06/25(木) 20:24:37.53ID:LQ8CyLE7 それに加えて
「継承」「抽象クラス」「オーバーライド」
「カプセル化」「ポリモーフィズム」
こんな用語は必ずしもやるのが正しいものではないし
やればやるほどシステムを必要以上に複雑にして
邪魔にしかならないものばかり
それなのに
「オブジェクト指向の本質は継承とカプセル化とポリモーフィズムだ。」
なんて馬鹿げた事を言い始めるノムリッシュな奴が出始めて
JavaScriptならオブジェクトの内部に
別のオブジェクトを入れるという一瞬の操作で
終わるものを「委譲」など余計な用語を定義して
わざわざ定義しなくてもいいようなくだらない
小難しそうな用語だらけになって
「お前はooの概念を正しく理解してない」
という偉そうな批判がどれだけ飛び交うことか
「継承」「抽象クラス」「オーバーライド」
「カプセル化」「ポリモーフィズム」
こんな用語は必ずしもやるのが正しいものではないし
やればやるほどシステムを必要以上に複雑にして
邪魔にしかならないものばかり
それなのに
「オブジェクト指向の本質は継承とカプセル化とポリモーフィズムだ。」
なんて馬鹿げた事を言い始めるノムリッシュな奴が出始めて
JavaScriptならオブジェクトの内部に
別のオブジェクトを入れるという一瞬の操作で
終わるものを「委譲」など余計な用語を定義して
わざわざ定義しなくてもいいようなくだらない
小難しそうな用語だらけになって
「お前はooの概念を正しく理解してない」
という偉そうな批判がどれだけ飛び交うことか
179デフォルトの名無しさん
2020/06/25(木) 20:31:34.09ID:LQ8CyLE7 webフレームワークの
MVCの「モデル」ってそんなに重要ものなのか?
「モデル」なんてものがSQLやDBMSを隠蔽して
何がありがたいと言うのか
むしろ隠蔽されて困ることの方が多いんじゃないか?
何故一度テーブル作成時にて定義した
大量の列定義を
またモデル層のフィールド定義で2度もやり直さないといけないのか
要らないだろ。「モデル」なんて
最近は従来軽視されてきたクライアントサイドJavaScriptの
方がよっぽど重要なことが分かってきて
ReactやVueのようなクライアントサイドフレームワークが
重要視されてるわけじゃん
「オブジェクト指向」って結局何がありがたいのよ?
MVCの「モデル」ってそんなに重要ものなのか?
「モデル」なんてものがSQLやDBMSを隠蔽して
何がありがたいと言うのか
むしろ隠蔽されて困ることの方が多いんじゃないか?
何故一度テーブル作成時にて定義した
大量の列定義を
またモデル層のフィールド定義で2度もやり直さないといけないのか
要らないだろ。「モデル」なんて
最近は従来軽視されてきたクライアントサイドJavaScriptの
方がよっぽど重要なことが分かってきて
ReactやVueのようなクライアントサイドフレームワークが
重要視されてるわけじゃん
「オブジェクト指向」って結局何がありがたいのよ?
180デフォルトの名無しさん
2020/06/25(木) 21:03:02.32ID:9YSX2wtH 1行でまとめて
181デフォルトの名無しさん
2020/06/25(木) 21:03:32.44ID:9YSX2wtH > 「オブジェクト指向」って結局何がありがたいのよ?
多くの人で作業分担し、協力してプログラムを作れる所
多くの人で作業分担し、協力してプログラムを作れる所
182デフォルトの名無しさん
2020/06/25(木) 21:03:50.52ID:9YSX2wtH ReactやVueはオブジェクト指向
183デフォルトの名無しさん
2020/06/25(木) 21:03:50.90ID:lu0UaGfG184デフォルトの名無しさん
2020/06/25(木) 21:04:45.08ID:9YSX2wtH185デフォルトの名無しさん
2020/06/25(木) 21:05:53.76ID:lu0UaGfG >>180
抽象化を理解できないかわいそうな子
抽象化を理解できないかわいそうな子
186デフォルトの名無しさん
2020/06/25(木) 21:09:21.00ID:9YSX2wtH187デフォルトの名無しさん
2020/06/25(木) 21:17:15.89ID:lu0UaGfG188デフォルトの名無しさん
2020/06/25(木) 21:43:56.18ID:9YSX2wtH だから読んでないと言ってるw
189デフォルトの名無しさん
2020/06/26(金) 02:54:16.76ID:uM2i3sYA 関数化したりクラス化したらプログラムが高速化したんだけどGCが発生するタイミングが細かくなったってことでええんか?
190デフォルトの名無しさん
2020/06/26(金) 07:35:03.68ID:eLfJJdHb オブジェクト指向は整理術
棚なんて要らん棚があるから余計な物も管理する羽目になると床置する人が現実に居るのと同じ
棚なんて要らん棚があるから余計な物も管理する羽目になると床置する人が現実に居るのと同じ
191デフォルトの名無しさん
2020/06/26(金) 08:53:43.63ID:crXMwmqp まああまりに糞な抽象化だともう全部publicでレコードとして扱えやとは思うな。
抽象化を万能なものと思い込みすぎな馬鹿が多すぎるからオブジェクト指向に対する誤解が生まれる。
抽象化を万能なものと思い込みすぎな馬鹿が多すぎるからオブジェクト指向に対する誤解が生まれる。
192デフォルトの名無しさん
2020/06/26(金) 09:44:19.22ID:8zz5Zpvs っていうか抽象化ってどんな仕様のどの部分を一括に扱ってるのか?
ドキュメントがないと最悪
ここの仕様は特殊だからこれとは別にしないとなって話ができない
ドキュメント書かないなら抽象化するな
害悪でしかない
ドキュメントがないと最悪
ここの仕様は特殊だからこれとは別にしないとなって話ができない
ドキュメント書かないなら抽象化するな
害悪でしかない
193デフォルトの名無しさん
2020/06/26(金) 09:50:43.03ID:Op8/e6Io >>190
直置きはダメだが
ほとんどの場合「棚をしまう為の棚」
「それをしまう為の棚、それをしまうための棚…」
ってなってる
で、「ハサミ使いたいんだけどどこにあったっけ?」
って探すのに非常に苦労する。
見つけやすくするための棚だったはずなのに。
それどころか
棚「ハサミは内部で使うから自分で使わなくていいです。
『切る 』という目的だけに集中して、そう命令してください」
と、棚に言われる。
しかし切られた結果を見ると自分が欲しかった結果と微妙に
違うことがよくある。
だから「もう俺が直接切るから、いいからハサミをよこせ」
っていう話になる。
あと抽象化については
「これは抽象的な棚なので中には何も入っていません。
私を参考にした具体的な棚が何処かにあると思うのでそれを
探してください。」となる。
じゃあ「具体的な棚って一体どれだ?なんか長い名前の棚が
やたら沢山あるけどどの棚から探せばいいんだ??」
となる
直置きはダメだが
ほとんどの場合「棚をしまう為の棚」
「それをしまう為の棚、それをしまうための棚…」
ってなってる
で、「ハサミ使いたいんだけどどこにあったっけ?」
って探すのに非常に苦労する。
見つけやすくするための棚だったはずなのに。
それどころか
棚「ハサミは内部で使うから自分で使わなくていいです。
『切る 』という目的だけに集中して、そう命令してください」
と、棚に言われる。
しかし切られた結果を見ると自分が欲しかった結果と微妙に
違うことがよくある。
だから「もう俺が直接切るから、いいからハサミをよこせ」
っていう話になる。
あと抽象化については
「これは抽象的な棚なので中には何も入っていません。
私を参考にした具体的な棚が何処かにあると思うのでそれを
探してください。」となる。
じゃあ「具体的な棚って一体どれだ?なんか長い名前の棚が
やたら沢山あるけどどの棚から探せばいいんだ??」
となる
194デフォルトの名無しさん
2020/06/26(金) 09:55:00.00ID:50iMo9Ym195デフォルトの名無しさん
2020/06/26(金) 09:55:48.09ID:50iMo9Ym 具体的に何のことを言ってるのか
考えなきゃならんようなたとえ話に価値はねーからな
説明が下手すぎる
考えなきゃならんようなたとえ話に価値はねーからな
説明が下手すぎる
196デフォルトの名無しさん
2020/06/26(金) 10:13:27.50ID:wYfFflLL >>193
整理が下手なやつの例をあげて、だから整理はすべきでないと言ったって意味がないだろう。
整理が下手なやつの例をあげて、だから整理はすべきでないと言ったって意味がないだろう。
197デフォルトの名無しさん
2020/06/26(金) 10:36:41.37ID:klgKDCEw このスレにstaticおじさん、絶対沸いてるだろ。
198デフォルトの名無しさん
2020/06/26(金) 10:41:42.69ID:s43csjES199デフォルトの名無しさん
2020/06/26(金) 10:42:57.59ID:8zz5Zpvs200デフォルトの名無しさん
2020/06/26(金) 10:54:38.35ID:crXMwmqp >>198
アルゴリズムレイヤーでアクセスを無駄に禁止するようなクラスは有害でしかない。
適切なpublic具合というものがある。
例えばc++のstd::vectorなんかはかなりオープンアクセスなクラスだがあれが適切なんだよ。
でもって馬鹿に適切なアクセス制御なんて無理ってこと。
変に細かくするな。
馬鹿はクラスレベルで制御なんかしないでいいからモジュールレベルでアクセスするapiだけ公開してろってこった。
アルゴリズムレイヤーでアクセスを無駄に禁止するようなクラスは有害でしかない。
適切なpublic具合というものがある。
例えばc++のstd::vectorなんかはかなりオープンアクセスなクラスだがあれが適切なんだよ。
でもって馬鹿に適切なアクセス制御なんて無理ってこと。
変に細かくするな。
馬鹿はクラスレベルで制御なんかしないでいいからモジュールレベルでアクセスするapiだけ公開してろってこった。
201デフォルトの名無しさん
2020/06/26(金) 10:58:13.55ID:uqHA56uo 適切なpublic具合
202デフォルトの名無しさん
2020/06/26(金) 11:23:09.67ID:TcIyIoqu203デフォルトの名無しさん
2020/06/26(金) 11:38:31.41ID:TyDtokvS 適切なpublic具合=ジャイアンルール
204デフォルトの名無しさん
2020/06/26(金) 11:48:31.80ID:klgKDCEw >>200
たぶん、162はクラスユーザーが呼び出した処理を実行している最中に内部処理を呼び出したら破綻するけど、いいのか?って言いたいのだと思う。
適切なアクセス修飾子をつけろは同意だが、彼に言うことではないと思う。
たぶん、162はクラスユーザーが呼び出した処理を実行している最中に内部処理を呼び出したら破綻するけど、いいのか?って言いたいのだと思う。
適切なアクセス修飾子をつけろは同意だが、彼に言うことではないと思う。
205デフォルトの名無しさん
2020/06/26(金) 11:51:10.08ID:klgKDCEw まぁ、スレッドがどうこうは...private関係あるのかな?って感じですが。
206デフォルトの名無しさん
2020/06/26(金) 12:36:59.06ID:s43csjES207デフォルトの名無しさん
2020/06/26(金) 13:04:36.71ID:8zz5Zpvs208デフォルトの名無しさん
2020/06/26(金) 13:19:36.46ID:SlEx0yXd 大昔、Javaやりだしてイキりだしたやつらが、オブジェクト指向もできない
老害とか騒いでいた歴史がある。そんな老害から見ると、gcに難しい事をまかせて、
馬鹿を吊り上げる仕組みなんだよなあ〜と皆言っていたのを思い出した。
今はPythonね。もっさ〜として、ダサすぎ。でも「俺AIの最前線だぜ」とか勘違い。
歴史は繰り返すのだ。
老害とか騒いでいた歴史がある。そんな老害から見ると、gcに難しい事をまかせて、
馬鹿を吊り上げる仕組みなんだよなあ〜と皆言っていたのを思い出した。
今はPythonね。もっさ〜として、ダサすぎ。でも「俺AIの最前線だぜ」とか勘違い。
歴史は繰り返すのだ。
209デフォルトの名無しさん
2020/06/26(金) 13:22:51.90ID:TcIyIoqu atomicityを保証するのを
呼び出し側の責任とするのか呼び出された側の責任とするのかは
pros/cons考えて使い分ければいい話でカプセル化必須とかにはならないよ
使う前にopenして終わったらcloseしてください的なAPIと
open/close含めて全部やってくれるAPIの違いと同じこと
呼び出し側の責任とするのか呼び出された側の責任とするのかは
pros/cons考えて使い分ければいい話でカプセル化必須とかにはならないよ
使う前にopenして終わったらcloseしてください的なAPIと
open/close含めて全部やってくれるAPIの違いと同じこと
210デフォルトの名無しさん
2020/06/26(金) 14:22:11.40ID:d6LVEoDZ211デフォルトの名無しさん
2020/06/26(金) 14:30:22.45ID:uqHA56uo すげえ、スレタイも日本語になってなくて、さらにまともな議論にすらなってないのに盛り上がってるw
オブジェクト指向じゃないやつのオブジェクト指向型言語のコード見れると思ってきたが、カオスだなw
オブジェクト指向じゃないやつのオブジェクト指向型言語のコード見れると思ってきたが、カオスだなw
212デフォルトの名無しさん
2020/06/26(金) 17:24:31.99ID:MKv++1da staticおじさんの詭弁ばかりで議論にすらならないから、もう、staticおじさん隔離スレ作った方がいいかもね。
【隔離】オブジェクト指向アンチスレ
みたいな感じで。
【隔離】オブジェクト指向アンチスレ
みたいな感じで。
213デフォルトの名無しさん
2020/06/26(金) 17:45:37.11ID:pGd8NqU0214デフォルトの名無しさん
2020/06/26(金) 18:11:48.36ID:QQ2hFNnS カプセル化はオブジェクト指向に限らずあるんだが
privateにして外からアクセス不能にすることをカプセル化だと思ってる奴は完全に勉強不足
privateにして外からアクセス不能にすることをカプセル化だと思ってる奴は完全に勉強不足
215デフォルトの名無しさん
2020/06/26(金) 18:24:19.05ID:xc/k+9g/ privateとprotectedの使い分けってみんなどうしてる?
俺は昔はpublic以外はよほど理由がない限り全てprivateにしてたんだけど、最近はよほど理由がない限り全てprotectedにするようになったわ。
俺は昔はpublic以外はよほど理由がない限り全てprivateにしてたんだけど、最近はよほど理由がない限り全てprotectedにするようになったわ。
216デフォルトの名無しさん
2020/06/26(金) 18:33:11.88ID:50iMo9Ym protectedはよくわからんので基本private
必要になったらprotected
必要ないならprivateでいい
変更してはいけないというルールはないんだから
必要になったらprotected
必要ないならprivateでいい
変更してはいけないというルールはないんだから
217デフォルトの名無しさん
2020/06/26(金) 18:33:48.93ID:eLfJJdHb オブジェクト指向は素晴らしいだろ
金正恩という概念から好きなだけ金正恩を生み出せるんだぞ
staticじゃ1匹しか生み出せない
その1匹が糖尿で死んだら北朝鮮は成り立たない
金正恩という概念から好きなだけ金正恩を生み出せるんだぞ
staticじゃ1匹しか生み出せない
その1匹が糖尿で死んだら北朝鮮は成り立たない
218デフォルトの名無しさん
2020/06/26(金) 18:36:58.13ID:eLfJJdHb 金与生は金正恩を継承したクラス
もしくは金日成の多態
もしくは金日成の多態
219デフォルトの名無しさん
2020/06/26(金) 18:37:59.75ID:eLfJJdHb 将軍様クラスのプロパティに性別があったとは思わなかったけど
220デフォルトの名無しさん
2020/06/26(金) 18:38:24.42ID:50iMo9Ym つまらんよ
221デフォルトの名無しさん
2020/06/26(金) 18:39:33.79ID:eLfJJdHb 北朝鮮人ならえげつない死刑
222デフォルトの名無しさん
2020/06/26(金) 18:42:48.62ID:QQ2hFNnS 金正恩というデータから好きなだけ金正恩産み出すのはオブジェクト思考に限らずできるんだが
オブジェクト指向と全く関係ない
勉強不足
オブジェクト指向と全く関係ない
勉強不足
223デフォルトの名無しさん
2020/06/26(金) 18:59:47.63ID:MKv++1da >>214
> privateにして外からアクセス不能にすることをカプセル化だと思ってる奴は完全に勉強不足
それな。
カプセル化はクラス使用者にとって必要な機能やデータを公開し、その他内部実装を秘匿することで標準ライブラリの如く使いやすいクラスを作りましょうという実にシンプルなものなのにね。
>>215
基本的にはprivate。自分が定義したメンバ変数やメソッドを継承先がどのように使うのか想像ができないのなら、privateにした方がいいと思っている。
継承先で意図しないメソッドの呼び出しや、変数の使い方をされたら困るからね。
当然、継承先での用途を考えた上でprotectedを使う場合もあるけどね。
> privateにして外からアクセス不能にすることをカプセル化だと思ってる奴は完全に勉強不足
それな。
カプセル化はクラス使用者にとって必要な機能やデータを公開し、その他内部実装を秘匿することで標準ライブラリの如く使いやすいクラスを作りましょうという実にシンプルなものなのにね。
>>215
基本的にはprivate。自分が定義したメンバ変数やメソッドを継承先がどのように使うのか想像ができないのなら、privateにした方がいいと思っている。
継承先で意図しないメソッドの呼び出しや、変数の使い方をされたら困るからね。
当然、継承先での用途を考えた上でprotectedを使う場合もあるけどね。
224デフォルトの名無しさん
2020/06/26(金) 19:08:51.52ID:QQ2hFNnS いやもうお前らprivateとかprotectedとかいう言葉を使ってカプセル化を語るのやめたほうがいいよ
privateという機能がなくてもカプセル化は実現できるから
百歩譲ってデータ隠蔽だけをカプセル化と呼ぶにしても、privateのように外からのアクセスを不能にする機能がなくてもカプセル化は実現できるし
privateという機能がなくてもカプセル化は実現できるから
百歩譲ってデータ隠蔽だけをカプセル化と呼ぶにしても、privateのように外からのアクセスを不能にする機能がなくてもカプセル化は実現できるし
225デフォルトの名無しさん
2020/06/26(金) 19:12:26.17ID:fnCF+h71 >>224
そんな方法あるんだ、どうやってやるの?
そんな方法あるんだ、どうやってやるの?
226デフォルトの名無しさん
2020/06/26(金) 19:34:06.00ID:eLfJJdHb >>222
オブジェクト指向でしか出来ないことがあるとでもw
オブジェクト指向でしか出来ないことがあるとでもw
227デフォルトの名無しさん
2020/06/26(金) 19:47:03.28ID:crXMwmqp pimpleパターンくらいは知っとけよ。。
てかカプセル化について馬鹿みたいにこだわる奴でまともなインターフェイス設計できる奴見たことねーわ。
リファクタリングもしないで一発で正解にたどり着けるとでも考えてるんだろうな。
てかカプセル化について馬鹿みたいにこだわる奴でまともなインターフェイス設計できる奴見たことねーわ。
リファクタリングもしないで一発で正解にたどり着けるとでも考えてるんだろうな。
228デフォルトの名無しさん
2020/06/26(金) 19:48:24.03ID:SG/+b/+N pimple 覚えた pimple ニキビ 覚えたpimple pimple
229デフォルトの名無しさん
2020/06/26(金) 20:33:23.82ID:QQ2hFNnS オブジェクト思考言語アレルギーの老害は論外として
特定のオブジェクト指向言語を習得している人は無数にいても、
オブジェクト指向そのものを理解してる人は殆どいなそう
特定のオブジェクト指向言語を習得している人は無数にいても、
オブジェクト指向そのものを理解してる人は殆どいなそう
230デフォルトの名無しさん
2020/06/26(金) 20:37:52.02ID:Op8/e6Io231デフォルトの名無しさん
2020/06/26(金) 20:43:25.43ID:ODDHilOW > オブジェクト指向そのものを理解
どういうこと?
アランケイがどう考えたとか
OOPがどういう成り立ちだとかそういういこと?
どういうこと?
アランケイがどう考えたとか
OOPがどういう成り立ちだとかそういういこと?
232デフォルトの名無しさん
2020/06/26(金) 20:54:59.05ID:0CWC8I0Q アランケイが考えたオブジェクト指向は洗練され完成されたオブジェクト指向なのです。
初号機が最強であるのはどこの世界でも同じことです。
初期版が完成です。改良などありえません。
初号機が最強であるのはどこの世界でも同じことです。
初期版が完成です。改良などありえません。
233デフォルトの名無しさん
2020/06/26(金) 21:47:56.68ID:ks+n8Bmz 第一、privateサポートしてない言語なんて普通にあるしな。Javascriptなんてそうだし。
234223
2020/06/26(金) 21:51:49.87ID:ks+n8Bmz あ、ID変わっちゃった。223です。
235デフォルトの名無しさん
2020/06/26(金) 22:03:26.05ID:TcIyIoqu >>223
>カプセル化はクラス使用者にとって必要な機能やデータを公開し、その他内部実装を秘匿することで標準ライブラリの如く使いやすいクラスを作りましょうという実にシンプルなものなのにね。
カプセル化といった時に一般的な定義は2種類あってそれはそのうちの1つで情報隠蔽(Infomation Hiding)とほぼ同じ意味
もう一つはデータとそれを操作する関数/メソッドを一つの単位に束ねることを言う(隠蔽されてるかどうかは気にしない)
人によっては2つを合成した定義でカプセル化という言葉と使ってるので
まともな議論をしたければどういう定義でカプセル化と言ってるのか確認する必要がある
>カプセル化はクラス使用者にとって必要な機能やデータを公開し、その他内部実装を秘匿することで標準ライブラリの如く使いやすいクラスを作りましょうという実にシンプルなものなのにね。
カプセル化といった時に一般的な定義は2種類あってそれはそのうちの1つで情報隠蔽(Infomation Hiding)とほぼ同じ意味
もう一つはデータとそれを操作する関数/メソッドを一つの単位に束ねることを言う(隠蔽されてるかどうかは気にしない)
人によっては2つを合成した定義でカプセル化という言葉と使ってるので
まともな議論をしたければどういう定義でカプセル化と言ってるのか確認する必要がある
236223
2020/06/26(金) 22:20:46.34ID:ks+n8Bmz 自分が議論したいというよりは...
このスレ主と>>138みたいな謎方向の議論をする人の思うカプセル化について、そりゃ違うだろって言いたいだけ。
215への回答は聞かれたから答えただけで深い意味はない。
このスレ主と>>138みたいな謎方向の議論をする人の思うカプセル化について、そりゃ違うだろって言いたいだけ。
215への回答は聞かれたから答えただけで深い意味はない。
237デフォルトの名無しさん
2020/06/26(金) 22:21:20.66ID:0CWC8I0Q >>235
違う違う。情報隠蔽のことをカプセル化と間違っていってる人がいるだけ
カプセル化の定義は必要なものだけをインターフェースとして提供する
必要ないものは隠蔽するってことなんだが
全部必要だから公開しているのに、カプセル化されてない!って言うやつがいるだけ
違う違う。情報隠蔽のことをカプセル化と間違っていってる人がいるだけ
カプセル化の定義は必要なものだけをインターフェースとして提供する
必要ないものは隠蔽するってことなんだが
全部必要だから公開しているのに、カプセル化されてない!って言うやつがいるだけ
238デフォルトの名無しさん
2020/06/26(金) 22:33:13.54ID:Pmgb6tek >>237
それが正しいという一次ソースあるん?
それが正しいという一次ソースあるん?
239デフォルトの名無しさん
2020/06/26(金) 22:33:39.59ID:Pmgb6tek ないんだったらそれあなたの感想ですよね
240デフォルトの名無しさん
2020/06/26(金) 22:34:17.18ID:TcIyIoqu241デフォルトの名無しさん
2020/06/26(金) 22:35:17.42ID:0CWC8I0Q242223
2020/06/26(金) 22:40:01.42ID:ks+n8Bmz 俺は...カプセル化の本質さえ抑えておけば、言葉としての違いは気にしないけどな。
privateにすること=カプセル化だと勘違いしていても、そいつがカプセル化の有り難みを理解できているのなら、深入りしないだけだよ。
言葉の定義にどこまで拘るかは議論の相手次第。
だが、staticおじさん、貴方は駄目だ。
俺のような細かいことを気にしないレベルの人間ですら駄目だわ。
昔からオブジェクト指向を批判し続けて初心者に誤解を与える老害だから見つけ次第、徹底的に叩く。
privateにすること=カプセル化だと勘違いしていても、そいつがカプセル化の有り難みを理解できているのなら、深入りしないだけだよ。
言葉の定義にどこまで拘るかは議論の相手次第。
だが、staticおじさん、貴方は駄目だ。
俺のような細かいことを気にしないレベルの人間ですら駄目だわ。
昔からオブジェクト指向を批判し続けて初心者に誤解を与える老害だから見つけ次第、徹底的に叩く。
243デフォルトの名無しさん
2020/06/26(金) 22:42:23.17ID:Pmgb6tek オブジェクト指向を勉強してる意識高い系のアホが
引数も戻り値も使わず、全部インスタンス変数使ってる例を見て
僕はstaticおじさんになっちゃいそう
引数も戻り値も使わず、全部インスタンス変数使ってる例を見て
僕はstaticおじさんになっちゃいそう
244デフォルトの名無しさん
2020/06/26(金) 22:49:00.20ID:TcIyIoqu245デフォルトの名無しさん
2020/06/26(金) 22:50:30.87ID:Pmgb6tek 構造化プログラミングをできるようになって
データと関数をオブジェクトとしてまとめるともっと良いかもと
オブジェクト指向を身につけるならいんだけど
オブジェクト指向では名詞を抜き出すんだ
そうやってオブジェクトを分ければ良いプログラムができあがるんだと
オブジェクト指向に幻想抱いてるアホが作ったプログラムは手に負えん
データと関数をオブジェクトとしてまとめるともっと良いかもと
オブジェクト指向を身につけるならいんだけど
オブジェクト指向では名詞を抜き出すんだ
そうやってオブジェクトを分ければ良いプログラムができあがるんだと
オブジェクト指向に幻想抱いてるアホが作ったプログラムは手に負えん
246デフォルトの名無しさん
2020/06/26(金) 22:50:54.79ID:0CWC8I0Q247デフォルトの名無しさん
2020/06/26(金) 22:51:29.48ID:0CWC8I0Q >>245
オブジェクト指向に幻想抱いてる天才が作ったプログラムなら手に負えるだろ?
オブジェクト指向に幻想抱いてる天才が作ったプログラムなら手に負えるだろ?
248デフォルトの名無しさん
2020/06/26(金) 22:52:06.30ID:Pmgb6tek >>247
天才は幻想を抱かない
天才は幻想を抱かない
249デフォルトの名無しさん
2020/06/26(金) 22:52:57.33ID:Pmgb6tek 僕は天才だからわかる
僕のどこが天才なのかは説明できないけどわかって
僕のどこが天才なのかは説明できないけどわかって
250デフォルトの名無しさん
2020/06/26(金) 22:53:19.24ID:0CWC8I0Q■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 習政権、高市首相への態度硬化 台湾有事発言で連日非難 中国 ★11 [ぐれ★]
- 日本損失1.7兆円に修正 中国渡航自粛の影響試算 [蚤の市★]
- NY円、一時1ユーロ=180円台まで下落…1999年のユーロ導入以来初 [蚤の市★]
- 国内ホテル、既にキャンセルも 訪日客関連業界、事態見守る ★3 [蚤の市★]
- 「どうしようもない」 ため息つくアジアの玄関口 中国の訪日自粛で−福岡市 [蚤の市★]
- 橋下徹氏 外務省幹部の訪中受け「口だけ番長」へ痛烈指摘 「喧嘩は日本の完敗…なんとかっこ悪い日本か」 [冬月記者★]
- 【実況】博衣こよりのえちえち朝こよ🧪 ★2
- 【実況】博衣こよりのえちえち朝こよ🧪
- カカロット、腰痛い
- 結局松本人志ノーダメージじゃん
- 【!?】高市早苗「靖国神社電撃参拝プラン」浮上!これもう戦争だろ… [481941988]
- 今朝も阿佐ヶ谷に住みたくて咽び泣いてる😭
