カプセル化(英語:encapsulation)とは、オブジェクト指向を構成する概念の一つで、
オブジェクト内部のデータを隠蔽したり(データ隠蔽)、オブジェクトの振る舞いを隠蔽したり、
オブジェクトの実際の型を隠蔽したりすることをいう。
偏差値の低い学校向けの情報処理系教科書において「大変すばらしいものであり絶対に使うように」と大体的に宣伝された。
一方、カリフォルニア大学バークレー校の有識者を中心としたインターネットを作った人たちは「階層化の有害性」として
「絶対に使うな」としている。大雑把にいうと、その時は良くても、将来的な改修の際に隠蔽されたデータに
アクセスできないと解決できない問題が出てきて、結果的にデスマーチに陥るというのである。
オブジェクト指向の発案者であるアラン・ケイもコーディング規約(頭文字にアンダースコアを付けるなどの命名規則)で
縛る程度にすることを推奨しており、アラン・ケイが関わったオブジェクト指向プログラミング言語にはどれも「private」
という概念はない。
https://monobook.org/wiki/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96
探検
オブジェクト指向ってクソじゃね?
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2018/08/24(金) 13:32:09.36ID:ifygL6bT2018/08/24(金) 13:35:00.08ID:vJMsvnBL
なにをいまさら
3デフォルトの名無しさん
2018/08/24(金) 13:35:14.51ID:ZAZ1bDZG よくある
4デフォルトの名無しさん
2018/08/24(金) 13:44:30.12ID:dWZiPnfz アホだな
2018/08/24(金) 13:44:39.27ID:GnRKIAsQ
マジかよ
6♨デフォルトの名無しさん
2018/08/24(金) 13:48:32.20ID:JNQXY3hm7♨デフォルトの名無しさん
2018/08/24(金) 13:48:49.10ID:JNQXY3hm8♨デフォルトの名無しさん
2018/08/24(金) 13:48:49.93ID:JNQXY3hm9♨デフォルトの名無しさん
2018/08/24(金) 13:49:06.65ID:JNQXY3hm10♨デフォルトの名無しさん
2018/08/24(金) 13:49:07.52ID:JNQXY3hm11♨デフォルトの名無しさん
2018/08/24(金) 13:49:24.49ID:JNQXY3hm12♨デフォルトの名無しさん
2018/08/24(金) 13:49:25.25ID:JNQXY3hm13♨デフォルトの名無しさん
2018/08/24(金) 13:49:42.00ID:JNQXY3hm14♨デフォルトの名無しさん
2018/08/24(金) 13:49:42.66ID:JNQXY3hm15♨デフォルトの名無しさん
2018/08/24(金) 13:49:59.43ID:JNQXY3hm16♨デフォルトの名無しさん
2018/08/24(金) 13:50:00.16ID:JNQXY3hm17♨デフォルトの名無しさん
2018/08/24(金) 13:50:17.05ID:JNQXY3hm18♨デフォルトの名無しさん
2018/08/24(金) 13:50:17.68ID:JNQXY3hm19♨デフォルトの名無しさん
2018/08/24(金) 13:50:34.99ID:JNQXY3hm20♨デフォルトの名無しさん
2018/08/24(金) 13:50:35.59ID:JNQXY3hm21♨デフォルトの名無しさん
2018/08/24(金) 13:50:52.74ID:JNQXY3hm22♨デフォルトの名無しさん
2018/08/24(金) 13:50:53.52ID:JNQXY3hm23♨デフォルトの名無しさん
2018/08/24(金) 13:51:10.36ID:JNQXY3hm24♨デフォルトの名無しさん
2018/08/24(金) 13:51:10.98ID:JNQXY3hm25♨デフォルトの名無しさん
2018/08/24(金) 13:51:27.73ID:JNQXY3hm26♨デフォルトの名無しさん
2018/08/24(金) 13:51:28.57ID:JNQXY3hm27♨デフォルトの名無しさん
2018/08/24(金) 13:51:46.63ID:JNQXY3hm28♨デフォルトの名無しさん
2018/08/24(金) 13:51:47.62ID:JNQXY3hm29♨デフォルトの名無しさん
2018/08/24(金) 13:52:04.41ID:JNQXY3hm30♨デフォルトの名無しさん
2018/08/24(金) 13:52:05.28ID:JNQXY3hm31♨デフォルトの名無しさん
2018/08/24(金) 13:52:22.20ID:JNQXY3hm32♨デフォルトの名無しさん
2018/08/24(金) 13:52:22.85ID:JNQXY3hm33♨デフォルトの名無しさん
2018/08/24(金) 13:52:39.73ID:JNQXY3hm34♨デフォルトの名無しさん
2018/08/24(金) 13:52:40.36ID:JNQXY3hm35♨デフォルトの名無しさん
2018/08/24(金) 13:52:57.00ID:JNQXY3hm36♨デフォルトの名無しさん
2018/08/24(金) 13:52:57.69ID:JNQXY3hm37♨デフォルトの名無しさん
2018/08/24(金) 13:53:14.69ID:JNQXY3hm38♨デフォルトの名無しさん
2018/08/24(金) 13:53:15.30ID:JNQXY3hm39♨デフォルトの名無しさん
2018/08/24(金) 13:53:32.47ID:JNQXY3hm40♨デフォルトの名無しさん
2018/08/24(金) 13:53:33.30ID:JNQXY3hm41♨デフォルトの名無しさん
2018/08/24(金) 13:53:50.36ID:JNQXY3hm42♨デフォルトの名無しさん
2018/08/24(金) 13:53:51.27ID:JNQXY3hm43♨デフォルトの名無しさん
2018/08/24(金) 13:54:07.98ID:JNQXY3hm44♨デフォルトの名無しさん
2018/08/24(金) 13:54:08.57ID:JNQXY3hm45♨デフォルトの名無しさん
2018/08/24(金) 13:54:25.45ID:JNQXY3hm46♨デフォルトの名無しさん
2018/08/24(金) 13:54:26.08ID:JNQXY3hm47♨デフォルトの名無しさん
2018/08/24(金) 13:54:42.76ID:JNQXY3hm48♨デフォルトの名無しさん
2018/08/24(金) 13:54:43.68ID:JNQXY3hm49♨デフォルトの名無しさん
2018/08/24(金) 13:55:00.44ID:JNQXY3hm50♨デフォルトの名無しさん
2018/08/24(金) 13:55:01.09ID:JNQXY3hm51♨デフォルトの名無しさん
2018/08/24(金) 13:55:17.72ID:JNQXY3hm52♨デフォルトの名無しさん
2018/08/24(金) 13:55:18.39ID:JNQXY3hm53♨デフォルトの名無しさん
2018/08/24(金) 13:55:36.07ID:JNQXY3hm54♨デフォルトの名無しさん
2018/08/24(金) 13:55:36.71ID:JNQXY3hm2018/08/24(金) 14:27:45.99ID:0hzqlpOd
2018/08/25(土) 00:54:02.71ID:6mB8j9/9
オブジェクト指向は、ウンコのようにニガい
2018/08/25(土) 13:13:07.84ID:00w/RGH3
砂糖(シンタックスシュガー)を加えて関数型言語っぽくしているが、臭いまではごまかせない
2018/08/25(土) 13:25:46.59ID:bFeNHPVf
オブジェクト指向が無くなった場合
メソッドは全部グローバル関数になるの?
PersonRename(Person p,string newName);
PersonSetAge(Person p,int age);
PersonGetAge();
FirePersonCreate(Person p);
FirePersonRename(Person p,string newName);
FirePersonSetAge(Person p,int age);
FirePersonGetAge();
メソッドは全部グローバル関数になるの?
PersonRename(Person p,string newName);
PersonSetAge(Person p,int age);
PersonGetAge();
FirePersonCreate(Person p);
FirePersonRename(Person p,string newName);
FirePersonSetAge(Person p,int age);
FirePersonGetAge();
2018/08/25(土) 13:27:10.91ID:bFeNHPVf
訂正
PersonRename(Person p,string newName);
PersonSetAge(Person p,int age);
PersonGetAge();
FirePersonCreate(Person p);
FirePersonRename(FirePerson p,string newName);
FirePersonSetAge(FirePerson p,int age);
FirePersonGetAge();
PersonRename(Person p,string newName);
PersonSetAge(Person p,int age);
PersonGetAge();
FirePersonCreate(Person p);
FirePersonRename(FirePerson p,string newName);
FirePersonSetAge(FirePerson p,int age);
FirePersonGetAge();
2018/08/27(月) 19:47:07.71ID:y3uHC3Z/
クソはオブジェクトやぞ
2018/08/31(金) 19:34:28.84ID:lHXkvQer
文系がこねくり回して、結果的に無駄にコード量増やすようなイメージしかない。
62デフォルトの名無しさん
2018/09/05(水) 05:14:03.10ID:UEpkpswy >>1
オブジェクト指向で組めない君らがクソ
オブジェクト指向で組めない君らがクソ
2018/09/05(水) 05:21:15.30ID:w7O3HrXU
スタティックおじさんの皆さん
2018/09/05(水) 09:21:08.12ID:BLSFUWnl
カプセル化が原因で開発ができなくなるとするならオブジェクトの分け方が不適切なのだろ、開発が進むに連れてオブジェクトの役割が変遷したのだろ、設計やり直せないなら地獄だな
2018/09/05(水) 09:22:22.65ID:BLSFUWnl
設計のないスタティックおじさん方式は柔軟かもわからんね↓
2018/09/05(水) 15:30:35.02ID:UEpkpswy
67デフォルトの名無しさん
2018/09/05(水) 23:23:20.11ID:BuNkH2Jq オブジェクト指向で描くロバストネス図なんてのは
構造化プログラミングの前のフローチャートそのものじゃないか
オブジェクト指向は現代のGOTO文なんだろ?
構造化プログラミングの前のフローチャートそのものじゃないか
オブジェクト指向は現代のGOTO文なんだろ?
2018/09/06(木) 01:28:19.10ID:uUC4mFDs
>>67
https://thinkit.co.jp/article/13487
> ロバストネス図を書くにあたっては、以下のルールを遵守する必要があります。
>
> ・アクターはバウンダリのみ関連線(矢印)が引ける
> ・バウンダリはコントロールとアクターのみ関連線が引ける
> ・エンティティはコントロールのみ関連線が引ける
> ・コントロールはコントロール同士とバウンダリのみ関連線が引ける
残念ながらフロー(流れ)を示す線は書けないので
フローチャートにはならない。特に条件分岐やループなどがない
https://thinkit.co.jp/article/13487
> ロバストネス図を書くにあたっては、以下のルールを遵守する必要があります。
>
> ・アクターはバウンダリのみ関連線(矢印)が引ける
> ・バウンダリはコントロールとアクターのみ関連線が引ける
> ・エンティティはコントロールのみ関連線が引ける
> ・コントロールはコントロール同士とバウンダリのみ関連線が引ける
残念ながらフロー(流れ)を示す線は書けないので
フローチャートにはならない。特に条件分岐やループなどがない
2018/09/06(木) 03:27:30.57ID:OdtAawkS
70デフォルトの名無しさん
2018/09/06(木) 07:33:26.04ID:ndioKak871デフォルトの名無しさん
2018/09/06(木) 07:42:10.81ID:ndioKak8 /** リストの要素をゼロで置き換える **/
private void clearList() {
for (Integer el : someList) {
el = new Integer(0);
}
}
なかなかファンキーなロケンロールだぜ
private void clearList() {
for (Integer el : someList) {
el = new Integer(0);
}
}
なかなかファンキーなロケンロールだぜ
2018/09/06(木) 08:26:13.84ID:abjuqq+M
2018/09/06(木) 08:28:15.97ID:abjuqq+M
2018/09/06(木) 08:31:32.42ID:abjuqq+M
構造化プログラムでゴトーが滅亡したようにオブジェクト指向にも構造化のブレイクスルーが生まれていい頃合いだと思うの
75デフォルトの名無しさん
2018/09/06(木) 12:51:58.13ID:ntAiYVJq オブジェクト指向って簡単な処理先に書いて難しい処理は後回しにする考え方でしょ
2018/09/06(木) 13:33:23.77ID:uUC4mFDs
2018/09/06(木) 13:46:11.74ID:abjuqq+M
インターフェースを切って実装を分離することを言ってるんじゃないか?
2018/09/06(木) 13:50:58.27ID:BY1c9tpo
そもそも、継承関係で隠蔽しちゃい合うのが問題なだけで、
インスタンス握り合うだけの仲なら、相手の陰部まで見に行く必要性なんて無いだろ。
インスタンス握り合うだけの仲なら、相手の陰部まで見に行く必要性なんて無いだろ。
2018/09/06(木) 23:36:20.94ID:OdtAawkS
2018/09/06(木) 23:37:17.79ID:OdtAawkS
2018/09/07(金) 08:35:51.18ID:avaKv6NM
2018/09/07(金) 08:40:25.09ID:avaKv6NM
責務ごとにクラスを作るのがどうして主流だよね?ってことですよ
2018/09/07(金) 09:19:04.85ID:avaKv6NM
責務ごとに分離したら凝集度が低下します
2018/09/07(金) 19:25:29.09ID:ZCXZkOYn
2018/09/07(金) 19:40:40.77ID:Nc+ifFiB
ボトムアップで設計したら結局最上位クラスが神クラス化しちゃうのは、アプリ層の設計が甘いんかな?
どうもUI部の設計は苦手だ。
どうもUI部の設計は苦手だ。
2018/09/07(金) 20:33:13.60ID:avaKv6NM
2018/09/07(金) 20:36:30.67ID:avaKv6NM
ドメインオブジェクトがドメインとしての振る舞いを持つのですから肥大化とは言いません、データと関わりのない振る舞いを持つわけではないんです
2018/09/07(金) 20:48:57.91ID:ZCXZkOYn
2018/09/07(金) 20:49:13.32ID:ZCXZkOYn
2018/09/07(金) 21:07:16.42ID:0j44DGgx
>>89
そんなバカな
行数でオブジェクトを捉えるべきじゃない
振る舞いがどこにあるべきかで考えないと
行数が増えたからオブジェクト分けましょうなんてのは
オブジェクト指向の理念に反する
データをカプセル化してデータに対する責務を持つのが
オブジェクトなんだよ
そんなバカな
行数でオブジェクトを捉えるべきじゃない
振る舞いがどこにあるべきかで考えないと
行数が増えたからオブジェクト分けましょうなんてのは
オブジェクト指向の理念に反する
データをカプセル化してデータに対する責務を持つのが
オブジェクトなんだよ
2018/09/07(金) 21:09:02.84ID:0j44DGgx
データに対する振る舞いが集まるんだから凝集度は高まるんです
2018/09/07(金) 21:12:47.16ID:0j44DGgx
オブジェクトが何かを考えないと行数で判断するという
前世紀のような事が起こるわけです
行数が多いからこのオブジェクトは頑張ってるんだな
と思ってしまうわけです
大きな間違いです、オブジェクト指向の根幹はカプセル化です
次に多態性、オブジェクトに適切なフルマがあって初めて
多態性を実現できます
前世紀のような事が起こるわけです
行数が多いからこのオブジェクトは頑張ってるんだな
と思ってしまうわけです
大きな間違いです、オブジェクト指向の根幹はカプセル化です
次に多態性、オブジェクトに適切なフルマがあって初めて
多態性を実現できます
2018/09/07(金) 21:15:03.24ID:Nc+ifFiB
皆が言ってることはもちろん分かる。
分かった上でViewのコートが大きくなりすぎて例えばC#ならついついpartial使ってファイル分けちゃう。
MVVMでも結局はViewか大きくなっちゃう。
いや、分かるよ。俺がViewの設計が下手っぴなのは認める。
分かった上でViewのコートが大きくなりすぎて例えばC#ならついついpartial使ってファイル分けちゃう。
MVVMでも結局はViewか大きくなっちゃう。
いや、分かるよ。俺がViewの設計が下手っぴなのは認める。
2018/09/07(金) 21:16:51.88ID:lg5TGvmQ
2018/09/07(金) 22:12:16.23ID:ZCXZkOYn
2018/09/07(金) 22:14:41.41ID:ZCXZkOYn
2018/09/07(金) 22:15:21.48ID:JescaW/f
つか、ワンオブジェクトワンファイルなんてルールは無いから。
98デフォルトの名無しさん
2018/09/07(金) 22:58:43.86ID:B/yxkRYZ このスレにいるような池沼が作らなければ
クラスライブラリも階層や種類で作るからな
低い階層に行けばいくほど単純な簡単な機能を提供するクラスになる
階層は完全に分離させて独立したライブラリにする
そして明確に種類の異なるプリミティブがある場合は
ライブラリを完全に分離させて独立したライブラリにする
その上にアプリケーションを実現するクラス群がのっかる
低学歴知恵遅れが作るとすべて同じ階層で同じ種類になる
クラスライブラリも階層や種類で作るからな
低い階層に行けばいくほど単純な簡単な機能を提供するクラスになる
階層は完全に分離させて独立したライブラリにする
そして明確に種類の異なるプリミティブがある場合は
ライブラリを完全に分離させて独立したライブラリにする
その上にアプリケーションを実現するクラス群がのっかる
低学歴知恵遅れが作るとすべて同じ階層で同じ種類になる
2018/09/08(土) 02:09:56.99ID:WAR6v8yR
クラスに階層があるなんて寝言は寝て言うべきだと思うの
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- H3ロケット8号機打ち上げ失敗、衛星軌道投入できず ★4 [少考さん★]
- H3ロケット8号機打ち上げ失敗、衛星軌道投入できず ★5 [少考さん★]
- 【徳島】「体調が悪くなったら自己責任」と同意書求める 最長1年2か月期限切れ 生活保護受給者に賞味期限切れ食品を支給 徳島市 ★2 [ぐれ★]
- アイリス、新米を最大12.5%値下げ 通販サイトなどで23日から [どどん★]
- 俳優・広末涼子さんを略式起訴 “時速185キロで車線変更”過失運転傷害の罪 [少考さん★]
- 「ONE PIECE」尾田栄一郎、原作は「ここからが大変」「僕は歳をとってしまったので最高速度で来年もズッシリドッシリ航海します」 [muffin★]
- 自民党議員や製薬会社が中国の古典に出てくる神様、炎帝神農に誓う「絶対に薬価を下げない」 [359572271]
- 「高市総理の行動力と覚悟に感服」「外交や経済政策への期待が高まる」高市早苗総理大臣のリーダーシップと政策運営に注目集まる! [673057929]
- 中国父さん、1日でロケット3機の打ち上げに成功🌸 ジャップとの差を見せつけてしまう… [271912485]
- 【悲報】高市早苗支持73%、物価高、悪い方向に進んでる73% [519511584]
- 【🎮】PCゲーマー、新作ゲームに1mmも興味ない事が判明・・・ [955862909]
- へずまりゅう「共産党の山添拓は日本人をなめるな。スパイ防止法が制定されたらどうなるか? その日が来るのが楽しみだ」 [384232311]
