カプセル化(英語: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
2020/02/05(水) 22:27:54.94ID:+cvwmFfJ
>>47
文春だったか新潮だったかで連載をみかけたことがあります
文春だったか新潮だったかで連載をみかけたことがあります
2020/03/13(金) 09:58:09.90ID:xi9CPGhb
オブジェクト指向を否定する理由がよく分からんけど
動的ディスパッチと継承まで全部含めないと認めない勢はもっと分からん
動的ディスパッチと継承まで全部含めないと認めない勢はもっと分からん
2020/05/05(火) 03:16:06.12ID:03z2FKoB
ttps://erologz.com/blog-entry-3246.html
52デフォルトの名無しさん
2020/05/26(火) 09:42:39.39ID:fDcZ5gJW privateはあっても良い。というか、外部から勝手に変数書き換えられる事を防ぐ方法のない言語はないとまずいだろう。それがバグの温床になる。
最近の言語だとクラス変数(プロバティ)はリードオンリーにできたりするのもあるのでそういうのは直接的にprivate変数を作る必要を減らせる。(例えばKotlin等)。
実際には内部的にprivate変数があってゲッターのメソッドを呼ぶようにコンパイルされるだけのことだがわざわざ自分でゲッターを作ったり呼び出したり書かなくて済んで見た目がスッキリする。
最近の言語だとクラス変数(プロバティ)はリードオンリーにできたりするのもあるのでそういうのは直接的にprivate変数を作る必要を減らせる。(例えばKotlin等)。
実際には内部的にprivate変数があってゲッターのメソッドを呼ぶようにコンパイルされるだけのことだがわざわざ自分でゲッターを作ったり呼び出したり書かなくて済んで見た目がスッキリする。
2020/05/26(火) 10:26:28.13ID:5zsa2F3Z
プロパティをリードオンリーって最近の言語っていうかC#でもできるじゃん?
Kotlinはそれのパクリでしょ?
Kotlinはそれのパクリでしょ?
2020/05/27(水) 07:57:47.39ID:/u1yd5kF
いざというときのためのアクセス手段を排除しておく方が
結局は回りくどい事をたくさんしなくちゃいけなくなって
バグの温床になる
結局は回りくどい事をたくさんしなくちゃいけなくなって
バグの温床になる
2020/05/30(土) 23:58:12.72ID:cB0ZATSK
いざというときは来ない
ヤグニ原則やでー
ヤグニ原則やでー
2020/05/31(日) 08:21:31.01ID:+fMKQW9s
関数ポインタを型安全に扱う方法くらいに思っときゃいいよ。
2020/05/31(日) 12:43:57.50ID:Jnw0anai
オブジェクト指向プログラムの新人教育には金正恩が解りやすいよね。
クラス→金正恩という概念
インスタンス→金正恩の実体でクラスからいくつでも生成可能
ガベージコレクション→要らなくなった実体の始末
クラス→金正恩という概念
インスタンス→金正恩の実体でクラスからいくつでも生成可能
ガベージコレクション→要らなくなった実体の始末
2020/05/31(日) 14:00:24.21ID:u66u8maC
>>57
全然わからんw
全然わからんw
2020/05/31(日) 16:22:34.64ID:UetBBPJT
月火水木金正日まで読んだ
2020/05/31(日) 22:36:16.18ID:JRHRMyge
月火水木金正月
2020/06/01(月) 07:19:51.05ID:AVsOuc1a
金正恩は設計図で、設計図から影武者と呼ばれる実体を数多く作り出している
これをテキストに書き出せばオブジェクト指向
最近現れた「顔違うじゃんこいつ誰だよ」って影武者は多態性を表している
これをテキストに書き出せばオブジェクト指向
最近現れた「顔違うじゃんこいつ誰だよ」って影武者は多態性を表している
2020/06/10(水) 07:55:26.36ID:tCrL9OIp
安倍晋三 = new 金正恩();
2020/06/11(木) 19:31:46.09ID:kcRACwfn
文 = new 金日成();
64デフォルトの名無しさん
2020/06/12(金) 13:12:04.55ID:Qkj+08r52020/06/18(木) 19:58:08.92ID:n5xiCy8O
こちらで同意を得られなかったからニュース速報スレで騒いでるw
オブジェクト指向は愚かな考え
https://hayabusa9.5ch.net/test/read.cgi/news/1592474015/
オブジェクト指向は愚かな考え
https://hayabusa9.5ch.net/test/read.cgi/news/1592474015/
2020/06/18(木) 19:59:28.33ID:n5xiCy8O
age
2020/06/19(金) 14:19:35.81ID:hJZaVrgb
ニュー速って人間いるのか?
68デフォルトの名無しさん
2020/08/24(月) 12:09:53.90ID:lmfLUas9 ところで「チンポがシコシコする」という日本語表現は、文法的に正しいのか?
チンポ「を」シコシコするのではなくて、チンポ「が」シコシコする。この場合、「チンポ」は主語となる。
オブジェクト指向で言う「集約」は2種類あって、全体(俺)と部分(チンポ)が繋がっている場合と、
全体(俺)と部分(チンポ)が別々になっている場合とが考えられる。けれども「チンポ」はそれ自体
が独立した生き物であり、所有者の意思とは無関係に、勃起して「シコシコする」。
例えば寝てる時にエロい夢みて朝起きてみたらチンコが勃起して射精してたとか。
違うか?
「胸がドキドキする」は良いが、「チンポがシコシコする」はダメな理由を、50字以内で述べろ!
チンポ「を」シコシコするのではなくて、チンポ「が」シコシコする。この場合、「チンポ」は主語となる。
オブジェクト指向で言う「集約」は2種類あって、全体(俺)と部分(チンポ)が繋がっている場合と、
全体(俺)と部分(チンポ)が別々になっている場合とが考えられる。けれども「チンポ」はそれ自体
が独立した生き物であり、所有者の意思とは無関係に、勃起して「シコシコする」。
例えば寝てる時にエロい夢みて朝起きてみたらチンコが勃起して射精してたとか。
違うか?
「胸がドキドキする」は良いが、「チンポがシコシコする」はダメな理由を、50字以内で述べろ!
2020/08/24(月) 13:00:28.10ID:IRt6XS62
自動詞と他動詞の違い
2020/08/26(水) 10:16:16.53ID:TgzufKyR
日本語に文法もクソもない
71デフォルトの名無しさん
2020/08/28(金) 18:28:34.79ID:BnzPgwao 多重継承は曖昧だというが、自然言語処理はその曖昧さが大切になる。チンポは随意筋であり不随意筋である。
最終的に,クラス階層は最上位クラスを含めた
最大8 階層から構成され,「伝統的な日本の絵画」
に属する用語に対応する 55 クラスと解説文中か
ら抽出した139 クラスが配置された。ただし,そ
のうち 32 クラスが複数の上位クラスをもつとい
う多重継承が示された。例えば,「ngyc:絵巻物」
は「ngyc:伝統的な日本の絵画」と,「ngyc:表具の
形式」の下位クラスである「ngyc:巻子」の 2 つの
クラスを継承する(図 2)。こうした多重継承は,
本質属性をもつ基本概念と機能を表すロール概念
を分離することで,基本概念による属性継承に限
った階層関係に変更するという考え方もあり 10),
「ngyc:伝統的な日本の絵画」がロール概念で,
「ngyc:表具の形式」が基本概念と捉えることもで
きる。しかし,本研究ではテキストからの情報抽
出に即して配置し,多重継承を許容した階層を導
き出した。
http://www.mslis.jp/am2019yoko/05_kobayashi.pdf
最終的に,クラス階層は最上位クラスを含めた
最大8 階層から構成され,「伝統的な日本の絵画」
に属する用語に対応する 55 クラスと解説文中か
ら抽出した139 クラスが配置された。ただし,そ
のうち 32 クラスが複数の上位クラスをもつとい
う多重継承が示された。例えば,「ngyc:絵巻物」
は「ngyc:伝統的な日本の絵画」と,「ngyc:表具の
形式」の下位クラスである「ngyc:巻子」の 2 つの
クラスを継承する(図 2)。こうした多重継承は,
本質属性をもつ基本概念と機能を表すロール概念
を分離することで,基本概念による属性継承に限
った階層関係に変更するという考え方もあり 10),
「ngyc:伝統的な日本の絵画」がロール概念で,
「ngyc:表具の形式」が基本概念と捉えることもで
きる。しかし,本研究ではテキストからの情報抽
出に即して配置し,多重継承を許容した階層を導
き出した。
http://www.mslis.jp/am2019yoko/05_kobayashi.pdf
72デフォルトの名無しさん
2020/08/29(土) 09:12:11.29ID:oUMAS3pz 金正恩はVMでありGC。人民はその上で動いたり消されたりする有象無象の存在に過ぎない。
73デフォルトの名無しさん
2020/08/29(土) 11:29:42.99ID:Do+gb0AF VMやGCが手術失敗で植物状態になったらどうなるの?っと。
2020/09/06(日) 02:31:39.18ID:QQYsdpvX
金日成←金正日←金正恩(継承関係)
2020/10/04(日) 12:56:38.20ID:2fuJ2qWu
76デフォルトの名無しさん
2020/10/08(木) 13:15:33.39ID:PsyY8tmH2020/11/29(日) 08:37:45.22ID:9l7L6WSM
今更だけどOOPアンチ絶滅した?
急に大人しくなった気がする。
急に大人しくなった気がする。
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 [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- 【広島】「万引きした人を追跡」コンビニ店員の男性(46)を果物ナイフで刺したか 中国籍の少年(17)を殺人未遂容疑で現行犯逮捕 [ぐれ★]
- トランプ大統領 エヌビディア製AI半導体の中国輸出許可 安全保障重視の方針転換 [蚤の市★]
- 【サッカー】58歳カズ「オファーが来ている」 J3福島と近日中にも交渉 早ければ年内にも決断 [征夷大将軍★]
- 【悲報】高市早苗の擬人化がXで大バズりwwwwwwwwwwww [455031798]
- 高市が早くあの発言を撤回しないと、中国からもっと大きな制裁が飛んでくるぞ [805596214]
- 【動画】ファッションモデルまんこ、裸でランウェイを歩く。これがファッションだと言われて [749674962]
- 【画像】髙市さん「無職のシンママ支援を手厚くするため、世帯年収900万円以上の控除をカットします🙂」 [881878332]
- 早大名誉教授「高市内閣の高支持率はデータ操作か、支持している日本人がアホなのか」👈核心を突いてしまう [868050967]
- こんぺこ!こんぺこ!こんぺこ!🐰🏡
