カプセル化(英語: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
■ このスレッドは過去ログ倉庫に格納されています
2018/11/22(木) 20:14:06.80ID:egOZHV+V
2021/10/22(金) 21:31:08.36ID:BPCPgSiw
>>77
https://tabesugi.net/memo/2009/1a.html
C++ はひどい言語だ。これは、多くの平均以下のプログラマーが使ってるために
さらに輪をかけてゲロゲロになっていて、どうしようもないゴミが
簡単に生産されるようになってる。正直いって、C を選ぶ理由が C++ プログラマーを
追っぱらうため *だけ* だったとしても、それ自体、C を使う強力な理由になりうる。
C++ はトンでもなく悪い設計の元になりうる。どうせこの言語ではいつも STL やら
Boost やら、その他ゲロゲロベロベロの「素敵な」ライブラリの機能を使って、
それがあんたのプログラムに「役立つ」んだろうが、以下のことが起きる:
- うまく動かないときにもたらされる際限のない苦痛 (あと STL とか、特に Boost が
安定してるとか移植性があるとかいう奴は、どいつもこいつも大ウソつきで、
もはや笑えるレベルを超えている)
- 非効率な抽象プログラミングモデルで、2年たった後にこれらが実はそんなに
効率的じゃなかったことに気づくケース。でもそのときにはすでに全部の
コードがその素晴らしいオブジェクトモデルに依存していて、直すためには
アプリ全体を書き直さなきゃなんない。
言いかえれば、唯一まともで、効率がよくて、システムレベルで使えて、移植性がある
C++ ってのは、基本的に C で使える機能だけに限ったときなんだ。そして C だけに
限定するってことは、他の人がそれをめちゃくちゃにしないってことで、
ついでに沢山のプログラマが実際に低水準の問題を理解することができて、アホらしい
「オブジェクト・モデル」のたわごとを持ちこまないってことだ。
https://tabesugi.net/memo/2009/1a.html
C++ はひどい言語だ。これは、多くの平均以下のプログラマーが使ってるために
さらに輪をかけてゲロゲロになっていて、どうしようもないゴミが
簡単に生産されるようになってる。正直いって、C を選ぶ理由が C++ プログラマーを
追っぱらうため *だけ* だったとしても、それ自体、C を使う強力な理由になりうる。
C++ はトンでもなく悪い設計の元になりうる。どうせこの言語ではいつも STL やら
Boost やら、その他ゲロゲロベロベロの「素敵な」ライブラリの機能を使って、
それがあんたのプログラムに「役立つ」んだろうが、以下のことが起きる:
- うまく動かないときにもたらされる際限のない苦痛 (あと STL とか、特に Boost が
安定してるとか移植性があるとかいう奴は、どいつもこいつも大ウソつきで、
もはや笑えるレベルを超えている)
- 非効率な抽象プログラミングモデルで、2年たった後にこれらが実はそんなに
効率的じゃなかったことに気づくケース。でもそのときにはすでに全部の
コードがその素晴らしいオブジェクトモデルに依存していて、直すためには
アプリ全体を書き直さなきゃなんない。
言いかえれば、唯一まともで、効率がよくて、システムレベルで使えて、移植性がある
C++ ってのは、基本的に C で使える機能だけに限ったときなんだ。そして C だけに
限定するってことは、他の人がそれをめちゃくちゃにしないってことで、
ついでに沢山のプログラマが実際に低水準の問題を理解することができて、アホらしい
「オブジェクト・モデル」のたわごとを持ちこまないってことだ。
2021/10/30(土) 02:09:17.53ID:/YmEOZIF
80デフォルトの名無しさん
2022/08/13(土) 15:56:12.25ID:JbrEzaSr オブジェクト指向の難しいところは属人性だと思う
オブジェクトの分け方は人それぞれ
デザインパターンはそれを整理するために生まれたものだと思う
オブジェクト指向なら誰が書いても同じようになりますということなら
扱いやすいんだけれどもそうではない
自分が書くのは良いけど他人が書いたものを読むのはつらい
オブジェクト指向はいろんな書き方ができるPerlのようなものだと思う
オブジェクト指向はPerlです
オブジェクトの分け方は人それぞれ
デザインパターンはそれを整理するために生まれたものだと思う
オブジェクト指向なら誰が書いても同じようになりますということなら
扱いやすいんだけれどもそうではない
自分が書くのは良いけど他人が書いたものを読むのはつらい
オブジェクト指向はいろんな書き方ができるPerlのようなものだと思う
オブジェクト指向はPerlです
81デフォルトの名無しさん
2022/08/13(土) 17:30:32.28ID:9Y2sM84k STLやBoostは移植できないような特別なシステムコールを要求しないから、移植できると言えるんですよ。
82デフォルトの名無しさん
2022/08/13(土) 17:32:15.56ID:9Y2sM84k 利那須さんが文句をつけてるのは、メタプログラミングが難しすぎるということで、オブジェクト指向と関係ないのでは?
2022/08/13(土) 20:54:05.83ID:mt5asg0H
84デフォルトの名無しさん
2022/08/14(日) 10:56:25.73ID:VI2zLni0 >正直いって、C を選ぶ理由が C++ プログラマーを追っぱらうため *だけ* だったとしても、それ自体、C を使う強力な理由になりうる。
ここは完全に同意
ここは完全に同意
85ハノン ◆QZaw55cn4c
2022/08/14(日) 13:12:09.03ID:Q+W1voks >>84
でも C++11 の UTF-16 関係の機能 basic_string<char16_t> とかは重宝しているので、一概に C++ が悪いとはいえません
この前もwin32 の W 系を使うツールがちょろっと半日で書けちゃったし
https://mevius.5ch.net/test/read.cgi/tech/1434079972/73
悪いのは「デザインパターン」だ!デザパタを強要するやつらだ!
でも C++11 の UTF-16 関係の機能 basic_string<char16_t> とかは重宝しているので、一概に C++ が悪いとはいえません
この前もwin32 の W 系を使うツールがちょろっと半日で書けちゃったし
https://mevius.5ch.net/test/read.cgi/tech/1434079972/73
悪いのは「デザインパターン」だ!デザパタを強要するやつらだ!
86デフォルトの名無しさん
2022/08/16(火) 11:17:18.50ID:2x3mrzZQ basic_string<char16_t> って obsoleted じゃないの?
2022/08/17(水) 22:02:05.46ID:PoIxkbgz
>>86
ふーん、今はなにを使うの?
ふーん、今はなにを使うの?
2022/08/18(木) 15:21:11.06ID:E6+QXrSt
オブジェクト指向まじでいらなかったな
全然使ってないからクラスというものを忘れてたぞ
全然使ってないからクラスというものを忘れてたぞ
89デフォルトの名無しさん
2022/08/21(日) 07:34:45.58ID:WWmbtQML 本当に必要なのはオブジェクト指向ではなくて、
誰かがメンテしたそこそこ利便性のあるモジュールライブラリってだけだよな
そんなのFortranの時代からあるってーのw
誰かがメンテしたそこそこ利便性のあるモジュールライブラリってだけだよな
そんなのFortranの時代からあるってーのw
90デフォルトの名無しさん
2022/08/21(日) 09:56:05.49ID:ecIOs+Jg 誰かが作った便利なライブラリがあるから言えることだろ
鳥の雛が親鳥が餌を運んできてくれるから翼なんていらないと言ってるようなもの
便利なライブラリはオブシコで作られてるってことを認識したが良い
鳥の雛が親鳥が餌を運んできてくれるから翼なんていらないと言ってるようなもの
便利なライブラリはオブシコで作られてるってことを認識したが良い
91デフォルトの名無しさん
2022/08/21(日) 12:48:07.89ID:j3ukytx2 Cが出た時(すぐには)FORTRANからの置き換えが進まなかったのは
多次元配列のメモリ順が違ってたからだろうな
多次元配列のメモリ順が違ってたからだろうな
2022/08/21(日) 13:19:10.49ID:calK6kMN
>>90
オブシコってw
オブシコってw
2022/08/21(日) 14:33:34.21ID:TydpFBMU
オブジェクト指向型ライブラリってこれだろ
v = クラスnew
v.setter(1234)
v.func()
別に関数のみを提供する形で
func( :a => 1234 )
newもセッターもゲッターもない風にデザインしたって余裕で作れる
v = クラスnew
v.setter(1234)
v.func()
別に関数のみを提供する形で
func( :a => 1234 )
newもセッターもゲッターもない風にデザインしたって余裕で作れる
2023/03/02(木) 00:06:49.52ID:Narkquai
>>93
それ、ドメインモデル貧血症じゃね?
https://en.m.wikipedia.org/wiki/Anemic_domain_model
new可能な状態でsetter/getterつければオブジェクト指向って訳では無いよ
...ってことがURLの先で解説されてるから読んでみて
それ、ドメインモデル貧血症じゃね?
https://en.m.wikipedia.org/wiki/Anemic_domain_model
new可能な状態でsetter/getterつければオブジェクト指向って訳では無いよ
...ってことがURLの先で解説されてるから読んでみて
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【広島】「万引きした人を追跡」コンビニ店員の男性(46)を果物ナイフで刺したか 中国籍の少年(17)を殺人未遂容疑で現行犯逮捕 [ぐれ★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- 【サッカー】58歳カズ「オファーが来ている」 J3福島と近日中にも交渉 早ければ年内にも決断 [征夷大将軍★]
- 【速報】気象庁は津波注意報すべて解除 [蚤の市★]
- 【実況】博衣こよりのえちえち朝こよ🧪
- (´・ω・`)おはよ
- さかまた「過呼吸になった」かなた「耳聞こえない」ござる「声出ない」まつり「ご飯食べれない」
- 【画像】カリカリ女、脱いだらすごい😨 [632966346]
- くそしてかがやけ
- 🪬本日のコンマ占い🧿
