◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

カプセル化は愚かな考え★3 ->画像>3枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1600292241/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1デフォルトの名無しさん
2020/09/17(木) 06:37:21.26ID:rdOa/6ar
■危険性

かつて偏差値の低い学校向けの情報処理系教科書において「カプセル化は大変すばらしいものであり絶対に使うように」と大体的に宣伝された。

一方、カリフォルニア大学バークレー校の有識者を中心とした「インターネットを作った人たち」は「階層化の有害性(RFC 3439)」として「カプセル化は絶対にやめろ」としている。

大雑把にいうと、教科書の上では素晴らしく、開発を始めた最初のうちは良いが、将来的な改修の際に隠蔽されたデータにアクセスできないと解決できない問題が出てきて、非常に高確率でデスマーチに陥るというのである。

オブジェクト指向の発案者であるアラン・ケイもコーディング規約(頭文字にアンダースコアを付けるなどの命名規則)で縛る程度にすることを推奨しており、アラン・ケイが関わったオブジェクト指向プログラミング言語にはどれも「private」などという概念はない。

ソースコードが存在し改修が可能であればカプセル化しても問題ない。ソースコードがあってもライセンス的に改修できない場合や、そもそもバイナリのライブラリしかない場合などは絶望的である。

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)
2デフォルトの名無しさん
2020/09/17(木) 06:37:28.60ID:rdOa/6ar
※前スレ
http://2chb.net/r/tech/1596010678/
3デフォルトの名無しさん
2020/09/17(木) 06:38:11.32ID:rdOa/6ar
※前々スレ
カプセル化の有害性、オブジェクト指向は愚かな考え
http://2chb.net/r/tech/1592491656/
4デフォルトの名無しさん
2020/09/17(木) 06:38:36.19ID:rdOa/6ar
■仕様変更
それは雲の上で決まったことなので底辺社畜のITドカタにはどうすることもできない。
意見を言おうにも雲の上にいる奴らの顔すら知らない。
それこそが階層化で起きることだ。

オブジェクト指向云々ではない。
5デフォルトの名無しさん
2020/09/17(木) 06:55:37.46ID:k60QR6Dx
クソスレ立てるな
6デフォルトの名無しさん
2020/09/17(木) 10:53:48.09ID:ShdDUG77
関数型OSは、日本が主導したいものですな。
7デフォルトの名無しさん
2020/09/17(木) 11:15:42.88ID:Ebl/PrBy
主導以前にそんなOSはどこの国からも実用化されません。
今のところ私の予言は的中しています。
8デフォルトの名無しさん
2020/09/18(金) 13:38:30.43ID:l0yocru2
BSD系は基本的にそんな感じでしょ。
>>1のカプセル化は机上では素晴らしいが実際には云々というのも元祖BSDの開発者たちだし。
9デフォルトの名無しさん
2020/09/18(金) 13:39:56.81ID:l0yocru2
BSD系OSを積むiPhone
その主力であるobjective-cもswiftもカプセル化なんてないからね
10デフォルトの名無しさん
2020/09/18(金) 16:03:39.49ID:6chszCpL
カプセル化という言葉を理解せずにカプセル化を語りたがるスレ主w

クソスレだがNGするのに役立ってる
11デフォルトの名無しさん
2020/09/19(土) 20:40:29.18ID:NknEv8eE
publicでいいからな
12デフォルトの名無しさん
2020/09/19(土) 20:41:28.06ID:NknEv8eE
関数型が流行ったのもカプセル化の問題点をなんとかしようとした結果だろうしね
13デフォルトの名無しさん
2020/09/19(土) 20:54:42.74ID:djZ0gifd
オブジェクト指向が間違って広まったのが悲劇の始まりだよね
14デフォルトの名無しさん
2020/09/19(土) 20:55:48.52ID:okNEuTuK
カプセル化の問題点をなんとかしようとした結果じゃなくて
「ある種の問題」ではコードをシンプルに書けるからなだけだよw

だから関数型を使うと言っても全体を関数型言語で書くわけじゃなくて
「ある種の問題」に限って部分的に取り入れてる
15デフォルトの名無しさん
2020/09/19(土) 20:56:03.13ID:gpcd5FRI
見えない内部状態で関数の挙動が変わるとか
常識的に考えて頭おかしいからな
16デフォルトの名無しさん
2020/09/19(土) 20:57:12.54ID:gpcd5FRI
ひとりで書いてる時は問題ないんだけどね。
17デフォルトの名無しさん
2020/09/19(土) 20:57:27.89ID:gpcd5FRI
零細企業で書いてる時も問題ない
18デフォルトの名無しさん
2020/09/19(土) 20:58:40.17ID:gpcd5FRI
ひとつのシステムに複数の会社が絡むときにヤバくなる。
「あの会社が作った」と手を出せない。
19デフォルトの名無しさん
2020/09/19(土) 20:59:20.05ID:MKCi9adZ
状態は1個の構造体にまとめるべきだよね
20デフォルトの名無しさん
2020/09/20(日) 10:07:39.93ID:u7gAJbKe
>>12
関数型言語は並列・並行処理を簡単に書けるってので、オブジェクト指向プログラミングでの並列・並行処理に限界を感じてたゲーム業界とかが注目してたね。
コアの数が増え続ければ今C++なのが関数型言語に置き換わるかもとかnvのおっさんが話してたのも今は懐かしい・・・。

当時は理論先行で思ったより簡単じゃ無かったんだけど、ライブラリも整備されて理論に実態が追い付いてきたんだけど、もう注目されないかも?
見限られるのが早過ぎたんや・・・。
21デフォルトの名無しさん
2020/09/21(月) 09:34:25.96ID:tan4kSln
nodejsみたいな関数型は理解に苦しむ人が多かったけど、
pythonの大流行で「カプセル化禁止のオブジェクト指向」が一般人にも広まった。
22デフォルトの名無しさん
2020/09/21(月) 10:36:14.65ID:13UcesYH
カプセル化禁止のオブジェクト指向は
Python以外のどこで使われてるというの?
23デフォルトの名無しさん
2020/09/21(月) 10:39:59.83ID:13UcesYH
pythonの大流行で「カプセル化の代わりにネームマングリングを使うオブジェクト指向」が一般人にも広まった。
と言うべきでは?

https://qiita.com/mounntainn/items/e3fb1a5757c9cf7ded63

> pythonにはprivate変数はありません。
> しかしprivate変数に近いことは実現できます。

> PEP8上のコーディング規約としては
> 「_」1つのprefixをclass内のみで利用する変数とされています。
> しかし、この変数はインスタンス化したオブジェクトからのアクセス時には
> 物理的な機構はなくカプセル化としての役目は果たせません。

_を付ける方法はカプセル化にはならない

> 「__」2つのprefixをつけた場合、
> ネームマングリング機構が働きます。
> 該当の変数名は「_class名」のprefixがついた変数名へと置換されます。

__をつけるとネームマングリングによって変数名が変わるので
よりよい擬似的なカプセル化の方法になる
24デフォルトの名無しさん
2020/09/21(月) 10:59:25.78ID:apXLM6YN
>カプセル化禁止

そもそもメンバーの可視性制御ができなきゃカプセル化してないというわけでもないと思うが。
25デフォルトの名無しさん
2020/09/21(月) 13:24:59.53ID:tan4kSln
>>22
objective-cだろ
昔はiPhoneアプリ開発で利用強制されたから否応なしにその世界に足を突っ込んだやつは多い
26デフォルトの名無しさん
2020/09/21(月) 14:06:16.49ID:Yec037cY
オブジェクト指向における「カプセル化」は情報隠蔽のことじゃないんだよ

データとそれを扱うメソッドをオブジェクトという単位にまとめることがカプセル化

前者の意味で使ってるとしても可視性の制御は必須ではない
27デフォルトの名無しさん
2020/09/21(月) 14:08:03.22ID:Yec037cY
Pythonのオブジェクト指向言語機能はショボいので本格的にOOやるやつは少数派

Objective-Cは可視性の制御可能
Cでもできるけどね
28デフォルトの名無しさん
2020/09/21(月) 16:30:05.44ID:13UcesYH
カプセル化はPythonのようにネームマングリングを使う方法がオブジェクト指向として一般的!
29デフォルトの名無しさん
2020/09/21(月) 16:52:34.51ID:frM+OBSN
Java Silver, Goldの試験問題の答えがカプセル化とは、フィールドをprivateにすることだった。

だから、時々、ややこしい議論が生じる。

毎回意味不明なテンプレでスレが建つけど、>>1の言うカプセル化が何を意味しているのか誰も知らない。>>1も知らない。

つまりクソスレ
30デフォルトの名無しさん
2020/09/21(月) 16:53:08.49ID:tan4kSln
>>26
privateは何のためにあるの?
31デフォルトの名無しさん
2020/09/21(月) 16:53:56.49ID:13UcesYH
>>30
ネームマングリングがあるPythonでは不要
publicのまま名前を変更するから呼び出しにくくなる!
32デフォルトの名無しさん
2020/09/21(月) 16:54:44.02ID:za73uCrq
>>29
「カプセル化とはprivateではない」と書いてある教科書みたことないぞ。
ソース出せよ。
33デフォルトの名無しさん
2020/09/21(月) 16:56:00.38ID:frM+OBSN
>>32
前スレみれば。俺に言うな。
34デフォルトの名無しさん
2020/09/21(月) 16:57:19.25ID:13UcesYH
>>29
Java Gold SE7対策問題 ? 問7
https://tech.pjin.jp/blog/2015/10/31/java-gold-se7%e5%af%be%e7%ad%96%e5%95%8f%e9%a1%8c-%e5%95%8f7/

Javaにおけるカプセル化について間違っているものを選んでください。
1. カプセル化とは、属性と操作を一体化させることである。
2. カプセル化されたクラスでは、インスタンス変数に対してむやみにアクセスされることを防ぐためにアクセス修飾子を「private」にすることが多い
3. カプセル化されたクラスでは、インスタンス変数の値を変更する手段としてメソッドが別途作成される事が多い
4. カプセル化されたクラスでは、インスタンス変数を操作するためのメソッドはアクセス修飾子を「public」にすることが多い
5. カプセル化を行うことで各オブジェクトの結びつきが弱くなり、プログラムの再利用性が高くなる
6. カプセル化を行うことで個々のオブジェクトの独立性が高まり、オブジェクト内部の変更が外部に影響しにくくなる。
7. カプセル化を行うことでソフトウェアの保守性や開発効率が高まり、プログラムの部分的な再利用も安易になる。

正解は「(5)」となります。

(5)以外の説明はカプセル化の説明としてどれも正しいものになります。特に抑えておいていただきたい選択肢は以下の2つでしょうか。
35デフォルトの名無しさん
2020/09/21(月) 16:57:48.73ID:3ui/PrRI
世間でカプセル化と呼ばれてるものの99.9999%はprivateのことだな。
愚かなデファクトスタンダード
36デフォルトの名無しさん
2020/09/21(月) 16:59:45.88ID:13UcesYH
https://qiita.com/tamekaji/items/6c19e3d05621741ee929

参考: 「徹底攻略 Java SE 11 Silver 問題集」から引用:

カプセル化は、ソフトウェアを分割する際に、関係するデータと
そのデータを必要する処理を1つにまとめ、無関係なものや関係性の低いものを
クラスから排除することで「何のためのクラスなのか?」というクラスの目的を
明確化するために行い、ほかのクラスに重複するデータや処理がない状態を目指すものです。
37デフォルトの名無しさん
2020/09/21(月) 16:59:56.56ID:frM+OBSN
でも、privateが無い言語でもカプセル化ってあるけど?とかいう主張をしている人がいて衝突していた気がする。
38デフォルトの名無しさん
2020/09/21(月) 17:01:18.08ID:13UcesYH
>>37
Pythonではprivateの代わりにネームマングリングを使います!
39デフォルトの名無しさん
2020/09/21(月) 17:01:59.62ID:13UcesYH
>>37
衝突も何も「教科書」にはカプセル化はprivateにすることなんて書いてない
オブジェクト指向理解した気になってるなんちゃってが言ってるだけ
40デフォルトの名無しさん
2020/09/21(月) 17:04:39.17ID:13UcesYH
逆に必要なものを「publicにすること」と書いてあるなw
同じ意味のように見えて同じではない。
なぜなら全て必要なら全てpublicにしても「publicにすること」という
条件を守っているからカプセル化の定義とは矛盾しない

http://e-words.jp/w/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96.html

カプセル化とは、オブジェクト指向プログラミングにおいて、互いに関連するデータの集合と
それらに対する操作をオブジェクトとして一つの単位にまとめ、
外部に対して必要な情報や手続きのみを提供すること。
外から直に参照や操作をする必要のない内部の状態や構造は秘匿される。
41デフォルトの名無しさん
2020/09/21(月) 17:04:54.88ID:frM+OBSN
>>32

> >>29
> 「カプセル化とはprivateではない」と書いてある教科書みたことないぞ。

もしかして、じゃなくて、「カプセル化とはprivateにすることである」のソースを求めてる?

だいぶ前に試験を受けたときの記憶だから...ちょっと教科書探すよ。
42デフォルトの名無しさん
2020/09/21(月) 17:06:58.85ID:yKEq5/us
>>39
capsuleでもprivateでもなくuntouchableじゃん?
そもそもpublicなら「遮蔽」にならんじゃん?
43デフォルトの名無しさん
2020/09/21(月) 17:08:09.08ID:13UcesYH
>>42
> そもそもpublicなら「遮蔽」にならんじゃん?

カプセル化はprivateにすることではない
カプセル化は(必要なものを)publicにすることだ

必要ないものをどうするかなんて決まっていない
44デフォルトの名無しさん
2020/09/21(月) 17:08:59.13ID:apXLM6YN
> カプセル化されたクラスでは、 … アクセス修飾子を「private」にすることが多い

前スレの人ってのは、これを カプセル化=アクセス修飾子を「private」にすること と解釈したんだろうか?
45デフォルトの名無しさん
2020/09/21(月) 17:09:40.98ID:QKDolBMK
「触るな危険」と「隠された真実」はかなり違うだろ。
46デフォルトの名無しさん
2020/09/21(月) 17:10:21.60ID:13UcesYH
カプセル化において、必要ないものを
publicにしてコメントで内部用と書こうが、_プリフィックスをつけようが
Pythonのようにネームマングリングで呼び出しにくくしようが
どれでもいいのだ

必要なものをpublicにする。
必要ないものはどうでもいい。
47デフォルトの名無しさん
2020/09/21(月) 17:11:53.07ID:13UcesYH
>>45
プログラミングにおいては「触るな危険」でも「隠された真実」でもなくて
「内部実装」(だから仕様は固定されておらず予告なく変更することがあります。)という程度の意味だな
48デフォルトの名無しさん
2020/09/21(月) 17:13:56.04ID:QKDolBMK
>>47
privateは「隠された真実」だろ。
49デフォルトの名無しさん
2020/09/21(月) 17:16:21.58ID:13UcesYH
>>48
真実ってなんですか?
publicだと隠されてない真実なんですか?
プログラミングに置いて真実ってどういう意味ですか?
50デフォルトの名無しさん
2020/09/21(月) 17:22:09.73ID:SfcYXUEp
>>49
不都合な真実
publicにできたらノーベル賞級の偉業だぞ
51デフォルトの名無しさん
2020/09/21(月) 17:22:50.39ID:zHMfW7me
>>49
そりゃ鮫島事件だろ
52デフォルトの名無しさん
2020/09/21(月) 17:23:13.30ID:G3yMm26e
>>49
プチエンジェル事件
53デフォルトの名無しさん
2020/09/21(月) 17:23:47.73ID:13UcesYH
>>50
たとえで言うんじゃなくて、プログラミング用語で言ってくださいという意味です。
プログラミングで「真実」なんて言葉は使いません。
54デフォルトの名無しさん
2020/09/21(月) 17:32:42.55ID:frM+OBSN
うーん、だめだ...見つからん。
記憶ソースですまん。
でも、黒本じゃない本(黒本と同じ会社が出版)の問題にもあったのは覚えている。

カプセル化の選択肢はこれでいいの?って感じたのは覚えているんだよ,,,。他の選択肢がありえないものだったから、消去法で一択だったけど。

まぁ、Oracle Javaにおけるカプセル化はフィールドをprivateにしてメソッドをpublicにすることなんだなって無理矢理納得したけど。
55デフォルトの名無しさん
2020/09/21(月) 17:33:56.90ID:BKUa/6+Z
カプセル化を考えるとき
隠す隠さないという発想に出るのは
あくまで実装ありきの考えだから

先にインタフェースを考え
再利用性や直交性のために先にデザインされ
あとからそれに実装を与えるのがカプセル化

publicにするものはそれがインタフェースだから
publicにしないものはそれが実装だから
56デフォルトの名無しさん
2020/09/21(月) 17:34:41.41ID:13UcesYH
>>54
お前の記憶のものは見つからなくても、

「カプセル化とは」の質問と答えは書いてあるやろ?
それ書けばいいんやで?

Oracle Javaにおいてカプセル化は
なんて言ってるか書いてみ
57デフォルトの名無しさん
2020/09/21(月) 17:43:28.75ID:frM+OBSN
黒本から抜粋すると、
オブジェクト指向におけるカプセル化の特徴

・データがオブジェクト外に漏れることを防止できる
・オブジェクト内で保持する不変な値を保護できる
・クラスの実装を変更する際、呼び出し側への影響を軽減できる

というのはあるな。
まぁ、そりゃそうだわな。
58デフォルトの名無しさん
2020/09/21(月) 17:49:42.33ID:frM+OBSN
すまん、黒本じゃなかった。同じ会社の出している試験問題アプリの回答内容だったわ。

ていうか、いい加減に1のテンプレ変えようぜ。
定期的にこのスレくるけど、1の言うカプセル化の意味が本気でわからん。
59デフォルトの名無しさん
2020/09/21(月) 17:54:04.06ID:+MA8+KhA
>>29
なるほどね
オブジェクト指向に対して執拗に文句いってる人は
だいだいJavaの人なので納得

>>34
めちゃくちゃな問題だね
こんなの勉強して”正解”を覚えちゃうから
自分で考えなくなるんだろうね
60デフォルトの名無しさん
2020/09/21(月) 18:16:13.76ID:fI5zzMAW
> めちゃくちゃな問題だね
> こんなの勉強して”正解”を覚えちゃうから
> 自分で考えなくなるんだろうね

↑理由が一切書いてないことに注目(笑)
こういうの多いね。難癖だけ付ける人。
61デフォルトの名無しさん
2020/09/21(月) 18:26:45.54ID:frM+OBSN
>>59
Java Goldをとる人がオブジェクト指向に文句を言うことは無いと思う。
基本的に試験内容自体はJavaの実務経験(他言語の実務経験では無理)がないと解けない問題が多い。私が例(記憶)として挙げたのが珍例なだけで...。

何でもかんでもsetter,getterメソッドを用意して貧血ドメインなプログラムを平気で書くプログラマーは多いかもしれんが(根拠のない偏見)、少なくともJava Gold持つ奴がそんなクソコードを書くことはないと思う。思いたい。 
62デフォルトの名無しさん
2020/09/21(月) 19:16:33.69ID:isBduuhS
書くプログラムによるけどな。
データマイニングツール実装するならほぼフルアクセス必要なレコードが絶対に必要になる。
なぜならそれがドメインが求める機能だから。
63デフォルトの名無しさん
2020/09/21(月) 19:16:56.12ID:+VWwNH4y
>>61
どんなに優秀な人間でも未来予測はできない。
64デフォルトの名無しさん
2020/09/21(月) 19:42:08.62ID:zhVYtERB
HSPのモジュールだと全てprivateになる

http://www.onionsoft.net/hsp/v35/doclib/module.htm
65デフォルトの名無しさん
2020/09/21(月) 21:29:26.18ID:0qqDKwic
HSPってオワコンじゃね?
66デフォルトの名無しさん
2020/09/21(月) 21:40:09.54ID:wwTdiRfD
>>61
その珍問はさておいて
じゃあJava Goldを取るような人は
カプセル化とな何か、どう定義しているの?
67デフォルトの名無しさん
2020/09/22(火) 02:25:08.88ID:jDcMk3G3
はっきりした定義は無い
68デフォルトの名無しさん
2020/09/22(火) 03:13:46.62ID:bItwwpmo
> じゃあJava Goldを取るような人は
> カプセル化とな何か、どう定義しているの?

Java Goldを取る人が定義するのか?
Java Goldを取るような人はどういう定義をカプセル化と思ってるかだろ?

答えは>>34に書いてあるな。間違いを除いた以下がカプセル化の定義としてよく知られている。

1. カプセル化とは、属性と操作を一体化させることである。
2. カプセル化されたクラスでは、インスタンス変数に対してむやみにアクセスされることを防ぐためにアクセス修飾子を「private」にすることが多い
3. カプセル化されたクラスでは、インスタンス変数の値を変更する手段としてメソッドが別途作成される事が多い
4. カプセル化されたクラスでは、インスタンス変数を操作するためのメソッドはアクセス修飾子を「public」にすることが多い
6. カプセル化を行うことで個々のオブジェクトの独立性が高まり、オブジェクト内部の変更が外部に影響しにくくなる。
7. カプセル化を行うことでソフトウェアの保守性や開発効率が高まり、プログラムの部分的な再利用も安易になる。
69デフォルトの名無しさん
2020/09/22(火) 03:16:09.36ID:bItwwpmo
ところでPythonやってる人は、カプセル化はprivateではない
ネームマングリング(__プリフィックスつけたメソッド名を内部名へ変更すること)のことだ
って思ってるのか?
70デフォルトの名無しさん
2020/09/22(火) 03:17:30.33ID:jDcMk3G3
>>68
1,5,6は蛇足。
2,3,4は多いってww
そしたら少ない場合は、何なのよ
71デフォルトの名無しさん
2020/09/22(火) 03:18:47.21ID:jDcMk3G3
Java Goldってこの程度なのか…
72デフォルトの名無しさん
2020/09/22(火) 03:29:13.61ID:Ab752W48
>>70
> 1,5,6は蛇足。

蛇足である理由は?
そして蛇足であっても書いてあることは正しいよね

> 2,3,4は多いってww
全てじゃないんだから多いという言い方をするしか無い
全てって言ってほしいんだろ?
そしてお前が「全てなわけがない!」って言いたいんだろ?w
先手取られたから、何も言えないね
73デフォルトの名無しさん
2020/09/22(火) 03:30:09.90ID:Ab752W48
>>71
この程度かどうかは論点じゃないよね

カプセル化の定義として正しいかどうかだよね
論点のすり替えは見逃さないよw
74デフォルトの名無しさん
2020/09/22(火) 03:41:57.34ID:jDcMk3G3
なにがカプセル化か人によって言うことが違う
基準が無いのに合っているって
75デフォルトの名無しさん
2020/09/22(火) 03:43:22.12ID:jDcMk3G3
Java Goldってこの程度なの?
76デフォルトの名無しさん
2020/09/22(火) 03:43:31.65ID:Ab752W48
じゃあ変なことを言ってるやつが間違ってるだけだろw
Java Goldの定義が正しい
だからJavaやってる人はカプセル化の定義を知ってる

知らんやつがオレオレ定義で喚いているだけ
77デフォルトの名無しさん
2020/09/22(火) 03:44:24.25ID:jDcMk3G3
Javaってその程度のものだったの?
78デフォルトの名無しさん
2020/09/22(火) 03:45:41.47ID:jDcMk3G3
>>76
> だからJavaやってる人はカプセル化の定義を知ってる

だそうだ、皆さんどう思う?
79デフォルトの名無しさん
2020/09/22(火) 03:50:12.39ID:jDcMk3G3
>2. カプセル化されたクラスでは、インスタンス変数に対してむやみにアクセスされることを防ぐためにアクセス修飾子を「private」にすることが多い
>3. カプセル化されたクラスでは、インスタンス変数の値を変更する手段としてメソッドが別途作成される事が多い
>4. カプセル化されたクラスでは、インスタンス変数を操作するためのメソッドはアクセス修飾子を「public」にすることが多い

なぜか5がないがそれは見なかったことにして…

カプセル化ってこういうことだったの?
オブジェクト指向って…
80デフォルトの名無しさん
2020/09/22(火) 07:40:52.29ID:EwzeVKsQ
>>34が正しいんだとすればカプセル化の定義はこれ一択じゃん

>1. カプセル化とは、属性と操作を一体化させることである。
81デフォルトの名無しさん
2020/09/22(火) 09:03:20.04ID:zPrOjjs3
Java Gold SE8の黒本1ページに書いてあったぞ

1. Javaにおけるカプセル化の実装に関する説明として正しいものを選びなさい。

a すべてのフィールドをprivate宣言する
b すべてのメソッドをprivate宣言する
c クラスをfinal宣言する
d クラスをstatic宣言する

Java Goldのボーナス問題だな。Bronze受けたこと無いけど、Bronzeでもあった気がする。

そして、記憶で語っているから勘違いしているかもしれないけど、わざわざJavaにおけるって書かれている。

時々、オブジェクト指向におけるカプセル化とJava(またはその他特定言語の)実装におけるカプセル化のルールを混在させる馬鹿がいる。
それも、1のテンプレがクソだから。
82デフォルトの名無しさん
2020/09/22(火) 09:34:53.81ID:+e+FbMSY
そりゃこのスレは「Javaでのカプセル化は何かがおかしい」ってのが趣旨でしょ
83デフォルトの名無しさん
2020/09/22(火) 09:37:22.31ID:u7FipdQU
>>1
どういった具体例があるか考えてみた。

A社が例えばユーザーの個人情報を格納するPersonクラス(を含むパッケージ)を作ってバイナリのライブラリをB社に売った。

ageフィールドをpriveteにして、セッターのsetAgeではあり得ない年齢が入力されたら0才が返る様に作られていた。

A社が潰れた。

数年後、医療技術の進歩で当時ではあり得ない年齢があり得る年齢になったのでB社は改修しようとした。


setAgeではあり得ない年齢が入力されたら0才が返る仕様だと、実際に0才なのか、あり得ない年齢が入力された結果なのか判別出来ず、
結果としてPersonクラス部分全体を作り直した。

みたいな事が起こってるのかな?
それでも入力時の年齢を一時保管してゲッターと比較するとか、やりようはありそうだからもっと絶望的な具体例があった方が良いだろうけど。
こう言う例だけでもコスパ的にはprivateよりpublicにして、コード規約で縛る程度が良いんだろうけど。

とりま、どっちの陣営もこう言う場合にこう言う問題が起こり得る。みたいな具体例からの議論したら建設的では。
84デフォルトの名無しさん
2020/09/22(火) 09:52:40.57ID:zPrOjjs3
>>83
カプセル化しても、ソースコードは別に編集できるぞ。
private、publicは関係ないと思うけど。
85デフォルトの名無しさん
2020/09/22(火) 10:42:17.09ID:C50Ev79m
>>84
そのモジュールを配布しているところと使っているところの開発が一緒ならな。
結局インターフェイスをどうするかって話になる。
で、それはセンスとしか言いようがないわけで変な技術論にこだわるからクソみたいな議論に繋がっている。
もう何度も行われた議論だ。
86デフォルトの名無しさん
2020/09/22(火) 10:47:01.51ID:u7FipdQU
>>84
だからわざわざバイナリって書いたのに・・・。
ソースが無い状態。dllとかの形でしか持ってない状態だよ。
87デフォルトの名無しさん
2020/09/22(火) 10:58:27.31ID:J3IrN4Ey
>>80
それな
他は「~が多い」という表現で定義について述べてるわけじゃないからな

tech.pjinとかいうサイトが考えた例題だから正しいかどうかもわかりゃしない
少なくとも5の主張は間違ってるのに6と7は正しいというのは矛盾してて意味不明
88デフォルトの名無しさん
2020/09/22(火) 11:34:32.81ID:J3IrN4Ey
Oracleの資料や試験範囲の「Apply encapsulation principles to a class」って項目を見ると
privateにしてgetter/setter用意するのがOracleの言う「カプセル化の原則」で
Javaな人はそれを「カプセル化の定義」だと思っちゃってるってことで間違いなさそうだね

[Java SE 8 Programming Student Guide]
• The term encapsulation means to enclose in a capsule, or to wrap something around an object to cover it.
• Encapsulation covers, or wraps, the internal workings of a Java object.
 – Data variables, or fields, are hidden from the user of the object.
 – Methods, the functions in Java, provide an explicit service to the user of the object but hide the implementation.
 – As long as the services do not change, the implementation can be modified without impacting the user.

↓この辺にもカプセル化の説明あるがそれぞれ言ってることが違う
https://docs.oracle.com/javase/tutorial/java/concepts/object.html
https://www.oracle.com/topics/technologies/newtojava/javaterminology-glossary.html
89デフォルトの名無しさん
2020/09/22(火) 11:37:56.47ID:UY6+hZuP
>>79
> なぜか5がないがそれは見なかったことにして…

ちゃん>>34読んでるか?
「以下の問の中で間違ってるのはどれか?」・・・5が間違ってる
のだから無いのは当たり前だろ
90デフォルトの名無しさん
2020/09/22(火) 11:40:38.91ID:bNTArSP2
あまり原理主義に走らない方が

自然の摂理でもあるまいし
都合よく美味しい所を取って要領よく使えば良いのでは
91デフォルトの名無しさん
2020/09/22(火) 13:03:03.01ID:GKTq/sAf
>>81
a-dから選べっていう選択問題だ
92デフォルトの名無しさん
2020/09/22(火) 13:54:00.38ID:C50Ev79m
世の中には俺様ルール押し付けたほうが楽できると思ってる輩がいるのよ。
実際は逆に本人、周り含めてみんな苦労するだけなんだが。
93デフォルトの名無しさん
2020/09/22(火) 15:10:51.64ID:1XqBBY/l
俺は思うんだが全部public finalフィールドでいいじゃん
94デフォルトの名無しさん
2020/09/22(火) 16:30:45.03ID:GZMXPtYq
>>83
バイナリ部分が壮大な作りだと大事件になる。
壮大だからこそライブラリ単品でも売れる。
95デフォルトの名無しさん
2020/09/22(火) 16:32:56.07ID:GZMXPtYq
>>83
struts1のメンテナンス終了事件がまさにそれ。
オープンソースであったにも関わらず壮大すぎて中小零細は誰も独自フォーク、独自メンテナンスができなかった。
96デフォルトの名無しさん
2020/09/22(火) 16:43:24.11ID:rSmj9iHf
自分達でソースをメンテナンスしない場合、カプセル化で詰むことが極々稀にあるってだけだろ
最初から開発を他社まかせにするなら、詰んだ時に別の会社の製品に乗り換えればいいだけ
カプセル化のデメリットとしては、あまりにも弱いな
97デフォルトの名無しさん
2020/09/22(火) 16:45:09.79ID:EwzeVKsQ
>>95
それ、べつにprivateじゃなくてpublicだったとしても状況は変わらなかったんじゃね?
98デフォルトの名無しさん
2020/09/22(火) 17:21:01.61ID:J3IrN4Ey
>>83
現実では「あり得ない年齢」や「0才を返す」という部分を
拡張不可能な形でハードコーディングしたりしないよね?

仮にあったとしてもそういうバイナリに依存したツケなので
仕様変更が必要なら自分で尻拭いするのは当然に感じる
99デフォルトの名無しさん
2020/09/22(火) 17:37:40.71ID:EwEFShMQ
どんな思想だろうとバカが運用すれば失敗する
そうでなければそれなりにうまく行く
100デフォルトの名無しさん
2020/09/22(火) 18:28:55.51ID:upDpA/6g
>>98
分かり易い例として上げただけで、実際にこんな馬鹿は居ないと信じたい。

尻拭いも当然なんだけど、そしたらカプセル化反対派は「そら見ろ」ってなるよね。
どう対処すべきかを具体的に議論して行くのが建設的では無いかと。

例えば医療技術の進歩を見越してsetAgeMaxメソッドを用意しておくとか。
101デフォルトの名無しさん
2020/09/22(火) 18:45:44.82ID:zPrOjjs3
んー、じゃあ、カプセル化を1ミリも否定しない俺から例題を出すけど

class parameter{
private int value;
public getValue(){
return this.value;
}
public setValue(int value){
this.value = value;
}
}

Javaのカプセル化の原則に従うと、わざわざフィールドを用意する度にこんなSetter、Getterを書くんだよね?
面倒くさくね?

という事例を考えてみた。
カプセル化を初めて学んだ時の俺の心の声だな。

...まぁ、上記コードに限っては面倒くさいだけでメリットが感じられないというのも間違いではない。
102デフォルトの名無しさん
2020/09/22(火) 18:55:06.72ID:1XqBBY/l
>>101
SetGetは要らない
代わりにフィールドをパブリックかつ不変にしてコンストラクタでバリデーションしよう

JavaやC#でアクセサ(プロパティ)が必要な本当の理由は実は「メタプログラミングのための規約」でしかない
メタプログラミングなんてものは純粋なオブジェクト指向から言わせて貰えば邪道もいいとこ
103デフォルトの名無しさん
2020/09/22(火) 19:41:22.16ID:aoFeMTcw
アクセサはメタプログラミングとは全く関係ないぞ
メタの意味わかってるか?
104デフォルトの名無しさん
2020/09/22(火) 19:55:58.36ID:1XqBBY/l
関係あるぞ
メタプログラミングを応用したライブラリ、フレームワークの多くはプロパティを前提として実装されている
バインディング、マッパー、シリアライザ、コード生成、、、
我々は、これらを利用したいがために、あまりにも多くの無意味なプロパティを書いてきた
それが、本来なら全く必要がないものにも関わらず、メタプログラミングで使うから、というだけでだ
105デフォルトの名無しさん
2020/09/22(火) 19:59:10.63ID:aoFeMTcw
> メタプログラミングを応用したライブラリ、フレームワークの多くはプロパティを前提として実装されている

いえ、
メタプログラミングを応用したライブラリ、フレームワークの多くは
パブリックメソッドやクラスをを前提として実装されています。
プログラミングにおけるあらゆるものを前提として実装されてるので
アクセサに限りません。
106デフォルトの名無しさん
2020/09/22(火) 20:14:26.78ID:1XqBBY/l
>>105
その大部分を占めるのはプロパティ
107デフォルトの名無しさん
2020/09/22(火) 20:17:39.19ID:aoFeMTcw
>>106
だから、プログラミングでは必ずとプロパティを使うだけだろ
メタプログラミングとは関係ない証拠
108デフォルトの名無しさん
2020/09/22(火) 20:18:50.22ID:aoFeMTcw
普通は全く使わないものなのにメタプログラミングのときだけ使う
そういうものであれば「メタプログラミングのための規約」と言えるが、
普段から使ってるんだから、メタプログラミングとは全く関係ない
109デフォルトの名無しさん
2020/09/22(火) 21:39:00.76ID:+zcbGttj
だから普段は使わないんだよ
メタプログラミングに毒されてるから要らないのにプロパティにしてしまっている
110デフォルトの名無しさん
2020/09/22(火) 21:48:21.67ID:J3IrN4Ey
>>100
ソースを提供しない汎用的なライブラリとして作るなら
許容可能な年齢みたいなバリデーションルールは外部から読み込むようにして
許容範囲外なら例外を返すようにする

継承してクラスを拡張させる方向とかもあるが
継承の手間をかけるメリットがあるような例ではない気がする

現実のユーザーの個人情報を格納するクラスなら
年齢は生年月日で管理、コンストラクタ渡しでSetterは無し
生年月日の変更を許容するなら”生年月日変更リクエスト”を別途モデル化する
111デフォルトの名無しさん
2020/09/22(火) 21:50:50.28ID:0j+aLKWi
だから、ラストの手紙を日本語で書いてしまってるからな
あの世界線の公用語は文字も日本語
112デフォルトの名無しさん
2020/09/22(火) 22:44:34.61ID:TWSwG1ae
>>109
プロパティを使わないでどうやって属性にアクセスするっていうの?
113デフォルトの名無しさん
2020/09/22(火) 23:43:52.35ID:1XqBBY/l
>>112
直接アクセスすればいい
なんの問題があるんだ
114デフォルトの名無しさん
2020/09/23(水) 07:01:43.37ID:vyT7LDfs
>>110
全くその通りで、そこを新人がいきなり出来る?とか、会社的(A社)には
そう言うシステム改修の度にお金発生するので敢えてそうしないと言うこともあり得る。

その場合、関数型言語でも関数内変数にしちゃう輩が多いだろうけど・・・。
115デフォルトの名無しさん
2020/09/23(水) 08:00:16.06ID:uYoc74AZ
>>113
それ、カプセル化をしないことで生じる問題をガン無視してるだけじゃん。
116デフォルトの名無しさん
2020/09/23(水) 09:18:51.25ID:irsqaiS+
>>113
プロパティの意味がわかってないのかw

プロパティっていうのは直接アクセスするのと同じ書き方で
名前(インターフェース)を変えることなく読み書き時に
任意の処理(設定値を制限するなど)を加えることができる仕組み

プロパティは実質直接アクセスするのと同じもの

なぜメタプログラミングのときだけ
任意の処理を加えるのか言ってみ
117デフォルトの名無しさん
2020/09/23(水) 12:54:30.27ID:S8l0aSve
>>116

それ、カプセル化をしないことで生じる問題をガン無視してるだけじゃん。
118デフォルトの名無しさん
2020/09/23(水) 13:01:47.82ID:/5+6arBn
>>117
カプセル化の話なんかしてません

プロパティはメタプログラミングに使うものだという
アホ間抜けがいるから、バカにしてやってるだけです
119デフォルトの名無しさん
2020/09/23(水) 13:06:47.61ID:EcLAlZaL
>>118
は?
120デフォルトの名無しさん
2020/09/23(水) 13:09:56.03ID:EcLAlZaL
ああ、メタプログラミングに使うものの部分の否定か。読み間違えたすまん
121115
2020/09/23(水) 13:16:38.01ID:EcLAlZaL
>>117
あと、勝手に俺になりすますな紛らわしい。
122デフォルトの名無しさん
2020/09/23(水) 23:10:59.12ID:USOBG2da
継承を重ねるうちに消えたデータ
123デフォルトの名無しさん
2020/09/24(木) 00:29:16.38ID:zy8bWf+v
秘技「無限継承の術」
124デフォルトの名無しさん
2020/09/24(木) 11:38:58.35ID:q5yIFuI6
正攻法ではMACアドレスを取得できないネットワーク関連のライブラリも多い。
カプセル化の弊害だ。

これ、オブジェクト指向は関係なんだけど、オブジェクト指向ではやりがちなこと。
125デフォルトの名無しさん
2020/09/24(木) 12:06:19.37ID:27/WCIy4
>>124
> 正攻法ではMACアドレスを取得できないネットワーク関連のライブラリも多い。
> カプセル化の弊害だ。

カプセル化をしないことで、MACアドレスを取得できるという
ネットワーク関連のライブラリを1つでいいから言ってください

カプセル化でMACアドレスが取得できなくなるのが
嘘か本当かはそれを見ないと判断できません。
126デフォルトの名無しさん
2020/09/24(木) 15:01:38.50ID:eJ60na0U
>>124
カプセル化の意味理解してる?
それ、カプセル化されたネットワーク系ライブラリからカプセル化を排除したところで、MACアドレスは取得できないと思うのだが。

まず、議論する前にカプセル化の意味からググれ。
さっきからプロパティやらメタプログラミングやら関係のない話を持ち出して何がいいたいのかわからん。
127デフォルトの名無しさん
2020/09/24(木) 15:06:54.07ID:eJ60na0U
いや、プロパティは関係あるのか?
メタプログラミングとか言ってる時点で俺の知らない用語と化していそうだが。
128デフォルトの名無しさん
2020/09/27(日) 07:06:20.94ID:0lir37kZ
カプセル化にも困ることはある
だからJavaではリフレクションがあるわけだしな
最初見たときはこんなの許していいのかとビックリしたが
129デフォルトの名無しさん
2020/09/28(月) 08:59:39.48ID:y1yHDvjF
>>125
旧.NETは取れるよ。
新.NETはサポートOSが増えた代償で取れなくなった。
130デフォルトの名無しさん
2020/09/28(月) 09:00:16.85ID:y1yHDvjF
>>126
IPが取れるならMACアドレスも取れるだろ。
131デフォルトの名無しさん
2020/09/28(月) 09:01:17.04ID:y1yHDvjF
IPアドレスは取れるけどMACアドレスもリンクスピードも取れないというのは結構ある。
132デフォルトの名無しさん
2020/09/28(月) 10:05:50.15ID:wlw0NrPw
>>129
.NET Coreでも普通に取れる
嘘はよくない
133デフォルトの名無しさん
2020/09/28(月) 20:58:52.42ID:9AJB64gi
>>132
PCLは取れない
134デフォルトの名無しさん
2020/09/29(火) 18:49:33.31ID:vIDJmIPs
カプセル化を推し進めると最小公倍数になる。
出来ることが減り、速度は遅くなる。
Adobe FlashやJavaアプレットが死滅した理由がまさにこれ。
135デフォルトの名無しさん
2020/09/29(火) 18:50:25.33ID:vIDJmIPs
2ボタンマウスと1ボタンマウスがあったら性能の悪い方に合わせるようになる
136デフォルトの名無しさん
2020/09/29(火) 18:58:24.66ID:Q+HTeu6k
カプセル化はオープンソースに反している。
137デフォルトの名無しさん
2020/10/02(金) 00:58:15.70ID:gd78HEzu
138デフォルトの名無しさん
2020/10/02(金) 09:38:31.29ID:pBqepwKm
>>136
たしかに。
オープンソースが広まる前の概念だよね。
ライブラリを売るのに都合が良かった。
139デフォルトの名無しさん
2020/10/02(金) 09:54:49.20ID:b+gARvx0
> ライブラリを売るのに都合が良かった。
どう都合が良かったの?
140デフォルトの名無しさん
2020/10/02(金) 10:09:10.35ID:pBqepwKm
>>139
コピープロテクト
141デフォルトの名無しさん
2020/10/02(金) 10:18:16.18ID:qiKhE9Co
>>140
それがカプセル化と何の関係が?
そういうバイナリを埋め込めばいいだけでしょ???
142デフォルトの名無しさん
2020/10/02(金) 12:44:52.35ID:pBqepwKm
>>141
それやったらカプセル化問題が発生した時にアウトじゃん
143デフォルトの名無しさん
2020/10/02(金) 12:51:14.12ID:9M4QbSP5
カプセル化問題w

「たしかに」とか言いつつ同一人物でしょこれ
144デフォルトの名無しさん
2020/10/02(金) 13:21:58.26ID:r0Llx4GW
本当に必要だったものはカプセル化ではなく変更のカプセル化
ようするにモナドだね
145デフォルトの名無しさん
2020/10/02(金) 13:30:25.34ID:YFyV1pKj
>>142
だから何の関係があるの?って聞いてるんだが
コピープロテクトはカプセル化で作られてるとか???
146デフォルトの名無しさん
2020/10/02(金) 15:51:31.16ID:LcUrcdrT?PLT(12015)

オープンソースなら「カプセル化の解除」ができるよね。
コピープロテクトも簡単に無効化される。
147デフォルトの名無しさん
2020/10/02(金) 17:15:25.27ID:JvTfpms1
>>146
オープンソースの暗号化ライブラリ使ったデータなら簡単に復号化できるよねw

オープンソースのキー交換アルゴリズム使った通信は誰でも簡単に傍受できるし簡単になりすましできるよねw

「カプセル化の解除」の教えは万能だよねw
148デフォルトの名無しさん
2020/10/02(金) 18:54:48.52ID:r3ReT+S4
>>146
オープンソースとカプセル化に何の意味が?
オープンソースなら、カプセル化しなくても
簡単に無効化できると思いますが???
149デフォルトの名無しさん
2020/10/02(金) 19:06:13.17ID:1uQRz/LD
カプセル化が必要なのはドメインレイヤー
これは不正な状態を排除するため
ただしイミュータブルなら無理にカプセル化しなくていい

インフラストラクチャはインターフェース切るだけでいい
実装は丸出しにしてOK
150デフォルトの名無しさん
2020/10/02(金) 19:57:20.99ID:Pm9ZUalc
>>147
「プログラムを改変できる」と
「プログラムが出力したデータを改変できる」はまったくの別物だろ。
151デフォルトの名無しさん
2020/10/02(金) 19:59:33.39ID:Pm9ZUalc
>>148
どちらも「カプセル化されている」というスタート地点が同じだとする。

後に「カプセル化を解除したい」となったときの行動パターンはオープンソースと非オープンソースで大きく違う。
152デフォルトの名無しさん
2020/10/02(金) 20:31:44.10ID:r3ReT+S4
>>151
それはオープンソースと非オープンソースの話であって
カプセル化は関係ないと言っています。
153デフォルトの名無しさん
2020/10/02(金) 20:32:06.20ID:r3ReT+S4
オープンソースでもカプセル化は沢山使われていますよね
154◆QZaw55cn4c
2020/10/02(金) 20:33:36.32ID:D6tjLIKJ
>>147
>オープンソースのキー交換アルゴリズム使った通信は誰でも簡単に傍受できる
オープンソースだから、という理由だけでは、そういう結論は導出できない
鍵交換アルゴリズムが正しく実装されておれば、第三者は傍受できないことが、アルゴリズムの上で保証されている
155デフォルトの名無しさん
2020/10/02(金) 20:33:48.39ID:r3ReT+S4
カプセル化したいときもオープンソースの方が簡単です!
156デフォルトの名無しさん
2020/10/02(金) 21:29:35.21ID:m07GQTUo
>>152
「カプセル化されているものを非カプセル化できる」というのはオープンソースだからこそでしょ?
157147
2020/10/02(金) 22:09:09.46ID:PXkbdcAL
>>150,154
>>146に言ってあげてねw
158デフォルトの名無しさん
2020/10/02(金) 22:40:42.45ID:r3ReT+S4
>>156
クローズドでもソースコードにアクセスできればできますが?
159デフォルトの名無しさん
2020/10/03(土) 00:08:13.37ID:yVZHteUR
>>158
アセンブラで?
160デフォルトの名無しさん
2020/10/03(土) 00:11:36.28ID:yVZHteUR
>>156
オープンソースで改変できるにしてもapache系のフレームワークみたいに巨大すぎてフォークしても後々のメンテナンス考えたら個人や零細企業では手に負えるレベルじゃない、というのはよくあるけどね。
161デフォルトの名無しさん
2020/10/03(土) 00:13:45.56ID:yVZHteUR
まあカプセル化否定派のnodejsとpythonが覇権を奪った時点で結論は出てるよね。
162デフォルトの名無しさん
2020/10/03(土) 00:15:27.57ID:Kq+qBTMl
>>159
コードサイニング証明書付きだと機械語レベルで改竄したら動かなくなるでしょ
163デフォルトの名無しさん
2020/10/03(土) 00:24:20.04ID:wMNyZfVn
そりゃ野良コーダーでも自由に改変できるのがOSSの強みだからな
OSS指向のnodeやpythonは安全を捨てて自由を選んだわけだ
逆に業務システムとかじゃ末端に好き勝手させないためのカプセル化が有効
164デフォルトの名無しさん
2020/10/03(土) 01:37:37.73ID:Y5A2bLqu
PythonでもJSでもprivateな変数作れるの知らないんだね

さすゴミ
165デフォルトの名無しさん
2020/10/03(土) 05:42:18.97ID:6PiAID7n
>>159
ソースコードって言ってるのにバカなのか?

他人が作ったものを利用するなんてはそうしかないんだろうけどな
ソースコードっていうのはライセンスとは無関係に
開発者はソースコードにアクセスできるの

で今はカプセル化の話なんだろ?
ソースコードにアクセスできる人は普通に
カプセル化してるし、都合が悪ければ変更するだろ
だから何いってんだアホって言ってるわけ
166デフォルトの名無しさん
2020/10/03(土) 05:42:51.94ID:6PiAID7n
>>162
> コードサイニング証明書付きだと機械語レベルで改竄したら動かなくなるでしょ
ソースコード修正してから署名つければいいだけ。アーホ
167デフォルトの名無しさん
2020/10/03(土) 09:08:25.83ID:tGxUSHNX
>>165-166
ソースコード非公開のライブラリの場合は?
168デフォルトの名無しさん
2020/10/03(土) 09:11:04.42ID:S8hWGx6H
カプセル化のためにめちゃくちゃ長い関数作るみたいな馬鹿なことやらなければ、
あとは勝手にやってりゃいいと思うよ。
169デフォルトの名無しさん
2020/10/03(土) 13:18:20.54ID:thR3EccD
>>164
どうやって作るの?
170デフォルトの名無しさん
2020/10/03(土) 13:57:26.98ID:ALPWY5SS
>>167
ソースコード非公開ライブラリがどうかしたの?
カプセル化と何も関係ないよね
171デフォルトの名無しさん
2020/10/05(月) 13:02:03.02ID:pmj9NwTG
保守性高いプログラム書ける人しかいないチームならありだけど、初心者が入るチームはだめだな
レビューで指摘、とかいうルールにしても、結局締め切りギリギリで出してきて今回は仕方ないねで終わりそう
172デフォルトの名無しさん
2020/10/05(月) 17:37:41.22ID:b3nIBUL6
締め切りを半分にすればいいだけ。おまえが無能。
173デフォルトの名無しさん
2020/10/07(水) 17:40:54.83ID:2v3CNbjq
カプセル化って名前が悪い。
ガラパゴス化にしよう。
174デフォルトの名無しさん
2020/10/07(水) 17:43:19.71ID:r+XQDTLB
更新保護でいいよ
読み取りは好きにすればいい
175デフォルトの名無しさん
2020/10/07(水) 19:10:04.34ID:OA8Qggd8
「だいじなところ」ぐらいではどうか?
許可がないと中身が見えない
176デフォルトの名無しさん
2020/10/08(木) 22:01:26.29ID:qUTzv3+8
シングルトンパターン並に間違った使われ方をされてる機能
177デフォルトの名無しさん
2020/10/08(木) 22:04:39.32ID:qKxlqJPM
必要だったのはprivateではなくread only
178デフォルトの名無しさん
2020/10/08(木) 22:17:15.27ID:2uctxrkW
ほんとそれ
immutable最強
179デフォルトの名無しさん
2020/10/08(木) 23:39:19.28ID:CGx3HaIV
read onlyとprivateは直交した別の概念
ただ未だにread onlyすら簡単に実現できない言語は苦労するよね
180デフォルトの名無しさん
2020/10/09(金) 15:05:28.51ID:BzBaKF6l
機械語にread onlyに出来る命令ってあるの?
181デフォルトの名無しさん
2020/10/10(土) 11:49:11.41ID:jhlE18dO
オブジェクト同士は常に二人称で、「俺」←対話(メッセージング)→「チンポ」。
つまりチンポは独立し自ら考えて行動する別の生き物なのである。

この考え方に至ってからは、オブジェクト指向の理解もすんなり進みました。
上手くオブジェクトを定義して、上手く会話させてやるのがオブジェクト指向
での設計なんだなーと今でも思っています。
https://blog.mah-lab.com/2014/03/18/object-oriented/

チンコの随意筋と不随意筋
http://d.hatena.ne.jp/tottokotokoroten/20130516/1368716650

<俺>
「 部屋の英子がこちらを向いた気配に、彼は勃○した陰○を外から障子に突きたてた。障子は乾いた音をたてて破れ、
それを見た英子は読んでいた本を力一杯障子にぶつけたのだ。本は見事、的に当って畳に落ちた。 」
<チンポ>
「 その瞬間、竜哉は体中が引き締まるような快感を感じた。彼は今、リングで感じるあのギラギラした、
抵抗される人間の喜びを味わったのだ。 」

まさに独立した人格を有したチンポという、もう一人の俺がそこに現れるのである!

【藤子・F・不二雄】「みきおとミキオ」現在と未来、憧れの入れ替わり生活!
https://www.google.com/amp/s/middle-edge.jp/articles/0izbO.amp
182デフォルトの名無しさん
2020/10/11(日) 18:41:11.36ID:z7d9ld+N
>>180
なんで急に機械語?
命令っていうか、セグメントとか使ってできるアーキテクチャはあるけど
183デフォルトの名無しさん
2020/10/12(月) 08:35:37.96ID:A87p/8z3
>>180
だから苦労するじゃん。
184デフォルトの名無しさん
2020/10/12(月) 11:58:51.16ID:hsanWbpq
機械語で難しい事はどんなに取り繕っても難しい
プログラミング言語なんてただのラッパーだからね
185デフォルトの名無しさん
2020/10/12(月) 12:12:14.34ID:DchzyShu
>>184
>機械語で難しい事はどんなに取り繕っても難しい

ならば「チンポがシコシコする」という日本語表現は、文法的に正しいのか?

チンポ「を」シコシコするのではなくて、チンポ「が」シコシコする。この場合、「チンポ」は主語となる。

オブジェクト指向で言う「集約」は2種類あって、全体(俺)と部分(チンポ)が繋がっている場合と、
全体(俺)と部分(チンポ)が別々になっている場合とが考えられる。けれども「チンポ」はそれ自体
が独立した生き物であり、所有者の意思とは無関係に、勃起して「シコシコする」。
例えば寝てる時にエロい夢みて朝起きてみたらチンコが勃起して射精してたとか。

違うか?

「胸がドキドキする」は良いが、「チンポがシコシコする」はダメな理由を、50字以内で述べろ!
186デフォルトの名無しさん
2020/10/12(月) 12:23:26.11ID:PgbimoqJ
胸は自らが動くからドキドキでよい
チンポをシコシコするのは右手(もしくは左手、足の場合もあるが詳細は省略)
つまり主語は(省略された)右手であってチンポは受け身の存在

要するにメッセージを送信するのは右手であって、受信したチンポはシコシコ指令を受けて
副作用としてドピュッシーを発生させる

シコシコはオブジェクト間メッセージなんだよ

もしこれが自分の右手じゃなくて彼女の足だったとする
足でもシコシコメッセージを送信することが出来る
これがオブジェクト指向の利点だ

彼女にシコシコされたチンポは右手にシコシコされた場合と同様にドピュッシーを発生させるんだ

夢精でドビュッシーするのはシコシコではなくムラムラ
違うメッセージでも同じ副作用を発生させるのが容易なのもオブジェクト指向的なんだ
187デフォルトの名無しさん
2020/10/12(月) 13:25:59.57ID:mFWgM/Sv
『シコシコ』という擬音はどうでもよい。問題は、

自我    チンポ
↑      ↑   チンポ=自我
チンポ   自我

オブジェクト指向では、この三種類が考えられるということだ。
>チンポ=自我
散歩している時、自分もチンポも所在地は同一である。

カプセル化は愚かな考え★3 ->画像>3枚
カプセル化は愚かな考え★3 ->画像>3枚

夏目くんの場合は、チンポが自我を圧倒し、体が自然に滝川さんの股間に近づいていったのだ。

『笑ってごまかすな!!』

と言われても、夏目くんは何と言えば良かったのだろう?

    チンポ≫自我

『チンポが自我を超えてしまった』を簡略化して、チンポがシコシコする!

チンポがシコシコしていると(チンポが自我を超越していると)、息もハァハァになる。
チンポがシコシコしている(チンポが自我を超越している)と、顔もアヘ顔になる。
つまりその顔は『チンポの一部』つまりチンポの皮と同じということ。

博士号の肩書きがあっても、STAP細胞のそれは間違いであり科学者として失格。
チンポと自我の関係について、それが間違いということなら、俺も科学者を自称するのを止めよう。
しかしながらあの夏目くんは、笑ってごまかす以外に何と申し上げたら良かったのか。
188デフォルトの名無しさん
2020/10/12(月) 15:46:50.40ID:rVNCwPir
突然キチガイが湧いてきたな
189デフォルトの名無しさん
2020/10/12(月) 16:07:52.34ID:mFWgM/Sv
ちんぽがしこしこする?、そんな言語表現あるのか?

クリントンの「不適切な関係」
https://eigo-kobako.blog.so-net.ne.jp/2008-06-21

不適切な関係、そんな言語表現あるのか?

クリントン大統領はそのちんぽがしこしこしてしまった、それを『不適切な関係』って言うのか?
190デフォルトの名無しさん
2020/10/12(月) 16:15:20.27ID:mFWgM/Sv
928 デフォルトの名無しさん 2018/11/21(水) 18:59:11.61 ID:8Yc2p7H1
>>922
>ナンチャッテメッセージングスタイルになったのは

チンポ.オシッコを出す
チンポ.オシッコを止める

さっきトイレでやってきた。


929 デフォルトの名無しさん 2018/11/21(水) 19:07:17.83 ID:8Yc2p7H1
>>915
>単なる動的なメソッド呼び出しをメッセージと称し、ただしコールするメソッドが見つからない場合だけメッセージを
>ハンドリングできる省コストなナンチャッテメッセージングスタイルに落ち着いた。

×
俺.オシッコを止める 俺.オシッコを出す

俺.チンポに力を入れる 俺.チンポから力を抜く
191デフォルトの名無しさん
2020/10/13(火) 09:41:20.48ID:RKAITbcn
785 名無し三等兵 sage 2019/12/03(火) 08:03:27.78 ID:sujZBpWD
>>762
>「胸がドキドキする」は良いが、「チンポがシコシコする」はダメな理由を、50字以内で述べろ!

チンポにチンポ自身を扱く機能が備わっていないので自動詞は不適切だから(34文字)

胸(心臓)には鼓動する機能があるため自動詞の適用対象だが
チンポには勃起する機能はあっても自身を扱く機能はないので「チンポ『が』勃起する」は成立しても「チンポ『が』シコシコする」は成立しない
夢精した状況を「チンポ『が』シコシコした」と称したければ「チンポがエロい夢を見させ夢精した」=「脳ではなくチンポが思考を司りエロい夢を見させて夢精させた」という状況で可となる

脳でなくチンポで物を考える生物についてなら「チンポ『が』シコシコする」は成り立つ
如何にもだつお的じゃないか
192デフォルトの名無しさん
2020/10/13(火) 15:22:42.55ID:h/Kpn3E/
チンポがシコシコ君は根本的に分かってないようだが
オブジェクトは主語ではなく、目的語。

SOVCのOはObjectのOダゾ
193デフォルトの名無しさん
2020/10/13(火) 19:16:29.57ID:03VVLclZ
>>192
オシッコを出すときのチンポは目的語だね。
194デフォルトの名無しさん
2020/10/13(火) 23:19:53.58ID:OKOKdjBN
privateは手術不可能
どんなに医療が発展しても手術不可能

恐ろしいね
195デフォルトの名無しさん
2020/10/13(火) 23:21:03.97ID:GrZfDvab
privateは病変があるか検査すら不可能
恐ろしいね
196デフォルトの名無しさん
2020/10/13(火) 23:21:39.73ID:GrZfDvab
privateになったら最期
197デフォルトの名無しさん
2020/10/13(火) 23:22:12.65ID:fePtuIzx
private不治の病
198デフォルトの名無しさん
2020/10/13(火) 23:22:40.45ID:RNuAvyGV
private病は恐ろしい
199デフォルトの名無しさん
2020/10/13(火) 23:23:37.94ID:fiIbY/nL
privateは大腸癌より発見しにくい
200デフォルトの名無しさん
2020/10/14(水) 01:16:50.52ID:0TgtAVoq
privateは全部公開
201デフォルトの名無しさん
2020/10/14(水) 20:23:46.69ID:+iRJSK1q
>>194
「新生物」とは良く言ったものだね。チンポは制御されるが新生物はされないから。
202デフォルトの名無しさん
2020/10/17(土) 14:49:31.23ID:XiAEb7KG
こうして、staticおじさん予備軍は死んだのだ。

めでたしめでたし。
203デフォルトの名無しさん
2020/12/07(月) 02:50:31.76ID:1hmL4SHh
マングリングって言葉があるんやね
マンぐり返しみたいで耳障りがええわ

ニューススポーツなんでも実況


mmp
lud20250418200407
このスレへの固定リンク: http://5chb.net/r/tech/1600292241/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「カプセル化は愚かな考え★3 ->画像>3枚 」を見た人も見ています:
【嫌儲プログラミング部】オブジェクト指向は愚かな考え 排便メソッドを実装した人間クラスから美少女クラスが作れない
カプセルホテルのバイトが質問に答えるぞ
【医薬】正露丸、36年ぶりに新製品。におい抑えたカプセル型
【はやぶさ2】快挙の連続「はやぶさ2」 想定外と葛藤乗り越え カプセル地球帰還へ [すらいむ★]
多様性排除に反発のJPモルガンCEO「かかってこい」⇒「愚かなDEIプログラムをキャンセルする。無駄遣いは嫌いだよ」
【調査】新人時代の浅はかな考えTOP10
道徳的な考え方ができない [無断転載禁止]
ECBのラガルド総裁は利下げ継続に前向きな考え
スピリチュアルな人たちってみんな考え方が似てて怖い
【菅官房長官】消費税率引き下げに否定的な考え [クロ★]
なんでお前らって必要最低限に人との関わりを遮断したいみたいな考えなの?
岸田首相、同性婚に否定的な考え 「社会が変わってしまう」★5 [愛の戦士★]
【安倍首相】「基本的な考え方として示した。休校は各学校、地域で柔軟に判断を」
論理的な考え方→「斎藤氏は被害者」の傾向 兵庫知事選調査で [きつねうどん★]
そりゃ性善説で見ている日本人に性悪説な考えの外国人じゃ外国人好きな様にやるわな。
【総裁選】麻生派、河野太郎氏または岸田文雄氏を支持へ…一本化は見送り [ボラえもん★]
フィリピンハーフだけど、日本特有の「外来種は悪」みたいな考えは辞めて欲しい
【ナゾロジー】ゴリラに増えてきた顔の非対称化は近親相姦が原因だった [すらいむ★]
AKB 仲川遥香「韓国人って皆いい人だよ!私は韓流大好き!嫌韓的な考えの人ほんとキモいよ」
小川満鈴「婚姻届オンライン化は確実に結婚詐欺が増える。勝手な無断離婚もできてしまう」
「核兵器禁止」←これって理想論すぎるから、もう少し現実的な考え方をした方がいいんじゃない?
【朝鮮日報】韓国政府と基本的な考えが異なる米国「対北制裁を続ける」[10/4] [右大臣・大ちゃん之弼★]
【話題】北朝鮮の核開発は「戦艦大和」建造に似ている、戦前の日本を考えると経済制裁強化は不安だ[09/05]
茶の文化は7世紀遣隋使が喫茶として日本に伝え、千利休が基礎体型を作り、在日が道として茶道とした
【池袋暴走】被害者側弁護士「車の経年劣化と主張しているが、ご自身の経年劣化は考えないのか」 [potato★]
麻生太郎「少子化は金ない男が増えたから」 未婚男年収100万76% 一生結婚できない男28%
【悲報】IGNJ「ゲームのグラの進化はもう頭打ちに思える。 解像度とフレームレート上げるくらいしかない」
「安易な考えが卑怯」放送内容訂正続きのTBS 毎回“女子アナお詫び”で決着つける反省のなさに批判殺到
中田英寿さん「今のW杯だけで結果が出れはばいいやみたいな考え方だと日本サッカーのためにならない」
【( ゚д゚)、】経済産業相、韓国との協議を否定「輸出規制強化は協議の対象ではないし撤回も考えていない」★6
【脱炭素】経済学者「温暖化は大した問題ではない。『グリーン成長戦略』は日本経済を破壊」 [ボラえもん★]
立憲・泉代表「もう共産党との関係性整理は終わっている。国民民主党の玉木代表と、基本的な考え方は互いに一致した」
まこなこ 「また私の予想が当たった!WiiUは2017年1月まで生産するという姑息な考え方だってできる」
【栃木】「(イチゴの苗を)即刻抜いて麦を育てろ」 戦時中イチゴ栽培農家弾圧の歴史、県元職員が戦争の愚かさを伝える
【米中】 #習近平 「自らの人種や文明が優れていると考え、他を改造しようとするのは愚かで破滅的なことだ」と米国批判
【菅首相】 訪韓に“慎重な考え”示す 韓国の議員団「ぜひソウルに来てほしい」[11/13] [首都圏の虎★]
フェミ「女性が出産や育児をしやすい制度に変えれば少子化は解決する!」→俺「資生堂ショック。はい論破」
【自民】二階幹事長「産まない」は勝手な考え 「皆が幸せになるためには、子どもをたくさん産んで、国も栄えていく」★21
【社会】専門家「保育所を増やしても少子化は解決しない。女性に選ばれない低収入男性をどうやって結婚させるかが問題」 [ボラえもん★]
ゲーミングチェアの代わりに購入した「3300円の椅子?」が「天才的な考え方」との声 画像あり ★2 [お断り★]
【オミクロン株】米ファウチ博士「重症化はあまり見られない。入院や酸素吸入の必要も少ないようだ」 [ボラえもん★]
【正論】共産党「北朝鮮の今の状況を考えたら一日でも早く日米安保を廃止すべき」国際世論的にも、もはや常識的な考えだよねこれは
【朝日新聞】日本の輸出規制強化は「日本頼み」だった韓国の半導体産業を変えつつある。日本は優位を保てるのか[12/3]
【サッカー】<DAZN>「今季までJリーグを中継しているスカパーにサブライセンス契約で映像を提供することには否定的な考え」
【レッドライン越え】イラン、MIRV多弾頭搭載可能な中距離弾道ミサイルを発射。 米イランの対立激化は避けられない状勢に
【自民プーッ】二階幹事長「産まない」は勝手な考え 「皆が幸せになるためには、子どもをたくさん産んで、国も栄えていく」★14
【謎】兵庫県職員の自己都合退職者の数、2024年度は前年の1.4倍に急増…近隣自治体では特に変化はないのに兵庫だけ増えるのは一体なぜ
【就職/差別】富山生まれの学生「極力採りません」「閉鎖的な考え方が強いです」 本間不二越会長、会見で持論 批判・異論相次ぐ★6
【社会】「飲みニケーション」文化はどこへ!? 上司から飲み会に誘われても7割以上が「行きたくない時は断る」 ★4 [ボラえもん★]
【就職/差別】富山生まれの学生「極力採りません」「閉鎖的な考え方が強いです」 本間不二越会長、会見で持論 批判・異論相次ぐ★9
【バイキング】南美希子「森会長への過度な個人攻撃は目に余ると思ってた」 「ある年代を中心に男尊女卑的な考えは深く残ってる」 [live★]
【高市総務相】マイナンバーに1人1口座の登録義務化方針 全口座のひもづけ義務化は見送る考え 朝日新聞 [ばーど★]
【プーッ】二階幹事長「産まない」は勝手な考え 「皆が幸せになるためには、子どもをたくさん産んで、国も栄えていく」 少子化問題で★13
【衆院選】 韓国メディア 「冷え切った日韓関係に変化はない」=韓国ネット 「日本人は理解できない」 [11/01] [荒波φ★]
【就職/差別】富山生まれの学生「極力採りません」「閉鎖的な考え方が強いです」 本間不二越会長、会見で持論 批判・異論相次ぐ★10
【自民】二階幹事長「産まない」は勝手な考え 「皆が幸せになるため、子どもをたくさん産み、国も発展していこう」 少子化問題巡り★4
【日韓】日韓外相会談で慰安婦問題協議、菅官房長官は「日本の基本的な考えを説明する」=韓国ネット「あれ?前進したはずでは?」[6/18]
【野球】<令和プロ野球>天下泰平とはいえないだろう。人口減と高齢化は進行しその影響は地方でより顕著。成長のカギは外国資本!?★2
立憲議員『自民ワンツー議連の知見を活かしAV新法を成立させた。AVは文化だと言うが搾取の上に成り立つ文化は文化と言えない。法が必要」
【科学】「技術先進国とは呼べなくなった日本…デジタル化は20年遅れ、未知数の研究への投資にも消極的」 元内閣府副大臣が警鐘 ★8 [ボラえもん★]
五輪、海外客断念でも鉄道に残したレガシー 多言語対応やバリアフリー化は無駄にならない-世界から人を迎える 課題はバリアフリー [トモハアリ★]
【同性婚反対派はノイジーマイノリティ】同性婚「賛成」は82.2%、差別的な考えを持つ反対派は50代以降の高齢男らが中心 電通調査 [スタス★]
カプセルプリンセス
タイムカプセル←これを土に埋める意味
大腸カメラ、大腸CT、カプセル内視鏡★6
22:51:47 up 64 days, 23:50, 0 users, load average: 10.14, 10.49, 10.54

in 1.1686458587646 sec @1.1686458587646@0b7 on 062111