オブジェクト指向って自然な文法だな 3 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/04/02(日) 16:30:38.65ID:n7h/bBRg
前スレ
オブジェクト指向って自然な文法だな 2
http://echo.2ch.net/test/read.cgi/tech/1490506257/
2017/04/21(金) 08:39:43.24ID:YTf7CJ3G
>>399
カプセル化不要についてだよ

まさかひとつひとつ違うことに対して不要だと言いまくってたの?
2017/04/21(金) 08:46:39.65ID:TFy/T03e
知らなくてもなくても作れるのだから不要。
極論すればアセンブルでも作れる。
2017/04/21(金) 08:54:22.04ID:rPWpf+kQ
>>400
カプセル化の不要についてだね
おk

まず処理の動作は設計書に書くものだろう
ソースでprivateやpublicになってるからどうだってんだよ

ここで反論ある?
2017/04/21(金) 08:54:46.12ID:uAFMuOM4
実装がpublicだと他人がその実装に依存して良くないことがありそうだ。参照だけでもマズい。
だからprivateにして実装を隠蔽する。

これのどこに分かりにくい点があるというのか?
設計書とか仕様書とか関係なかろう
2017/04/21(金) 09:00:18.64ID:YTf7CJ3G
>>402
ある
利用者は仕様書を確認することなく意図しない方法で利用する

他は?
と言うか一度に全部言ってくれ
2017/04/21(金) 09:05:15.16ID:rPWpf+kQ
>>404
利用者って誰?
ソースを改変するソイツ(?)は設計書を記述せずに対象のクラスを変更しようとしてる?
ソイツのことを利用者と呼んでいてお前の環境では存在しうるの?
406デフォルトの名無しさん
垢版 |
2017/04/21(金) 09:10:26.57ID:n31cY2TM
あぼーん
2017/04/21(金) 09:27:52.36ID:Ck7s6rRh
個人製作の観点からはカプセル化はいらんな
テンプレートか抽象タイプと多重ディスパッチあれば継承もいらんしミックスインもいらん
2017/04/21(金) 09:38:24.71ID:9S9WRWBb
>>405
実装する人が複数いる時、自分が作ったクラスのメンバ変数やメンバ関数を利用して
その人の担当クラスを実装する他人が自分のクラスの利用者だろう。
自分が作ったクラスも他人が作ったクラスも変更するのは作った人だけだ。

実装を一人で行える規模ではカプセル化の必要を感じないという話なら分かる。
でも前提なしでカプセル化は不要と主張したら大規模ソフトウェアも含まれる。
もしかして大規模ソフトウェアで必要かどうか全然考えてなかったの?
409デフォルトの名無しさん
垢版 |
2017/04/21(金) 09:46:56.85ID:cmecYv9F
だからホリデープログラマーと話しても無駄やて
2017/04/21(金) 09:59:20.07ID:WJo/zINx
むしろここで仕事の話をする方がおかしいけどな
2017/04/21(金) 10:01:25.18ID:WJo/zINx
>>408
担当のチェンジは無しなの?
2017/04/21(金) 10:22:27.45ID:YTf7CJ3G
>>405
話が止まるからまずは全量を語ってくれ
2017/04/21(金) 10:43:25.71ID:+U39WrXp
カプセル化されていると、メンバ変数とアクセサは分離され、外部のクラス利用者(ユーザコード)はもっぱらアクセサを呼ぶことになる。
仮にメンバ変数の実装の詳細を変更することになっても、アクセサを変更しない限り、ユーザコードは変更する必要はない。
間接層の導入による変更の局所化やね。

メリットと煩わしさの比較は人により異なりうるが、少なくとも必要なケースは少なからずあると思うが。
2017/04/21(金) 10:54:13.27ID:uAFMuOM4
せっかくカプセル化してもアクセッサなんか作ったら不自由になる。
変数を廃止したり形式の変更をしたりしにくくなる。
2017/04/21(金) 11:10:28.55ID:rPWpf+kQ
>>408
じゃあ利用者ってのはクラス使用者(そのクラスには絶対に手を加えない)のことでいいの?
2017/04/21(金) 12:01:38.24ID:YTf7CJ3G
>>415
そうだよ
javaで言うならStringクラスの利用者はStringクラスの内容を変更しないだろ

いちいち立ち止まらずまずは全量を語ってくれ
417デフォルトの名無しさん
垢版 |
2017/04/21(金) 12:12:59.55ID:T1EM2She
【全量】全体の重量。全体の容積。
2017/04/21(金) 12:20:09.36ID:YTf7CJ3G
>>417
ありがとう
2017/04/21(金) 12:41:44.49ID:rPWpf+kQ
>>416
ほうほう
だったら仮にそのクラス自体に手を入れることになった場合は
隠蔽対象者ではないということでおk?
2017/04/21(金) 12:49:54.80ID:YTf7CJ3G
>>419
うだうだ言ってねーで早く語れ
2017/04/21(金) 12:52:42.74ID:3x8HXz+G
相手にしない方がいいよ時間と労力の無駄
ID:YTf7CJ3Gが楽しんでやっているならとめないけど
422
垢版 |
2017/04/21(金) 13:05:41.49ID:KFYgHFHL
何十年前の話なのかわからなくなるな
423デフォルトの名無しさん
垢版 |
2017/04/21(金) 13:27:43.71ID:T1EM2She
>>422
いつ何度でも話していいことだと思うが
会話ってそういうものだと思う

人の色恋沙汰なんて4000年前に語りつくされているが
今なお人の心をとらえて離さないだろ

オブジェクト指向にとってカプセル化とは
それくらいの魅力があるものだってこと

会話っていうのは昔々誰々がすでにいったことだから
言っちゃいけない、話しちゃいけないなんてもんじゃない

会話に入りたいって素直に言うべき、カプセル化やめるべきって
ちゃんというべき
2017/04/21(金) 13:46:02.03ID:YTf7CJ3G
>>421
ありがとう
うんこタイムの暇潰しなので大丈夫だよ

>>423
べき論はよくわからん
そんなことよりも不要である理由を早く『明確』にしてくれ
425デフォルトの名無しさん
垢版 |
2017/04/21(金) 13:51:29.39ID:cmecYv9F
>>410
仕事の話ではなくオブジェクト指向の話だろ?
おれは1人で好きに作ってるからカプセル化なんていらねー!といわれても会話にならないよ
2017/04/21(金) 14:26:24.80ID:uAFMuOM4
>>425
それはそうだが、誰とどういうレベルで会話するのかってことだろう。
その前にホリデープログラマがどうたらってレスあるから。
427デフォルトの名無しさん
垢版 |
2017/04/21(金) 14:50:09.12ID:T1EM2She
>>424
お前が明確にするんだよ、カプセル化やめるべきだって言うんだよ
お前の仕事だよ
428デフォルトの名無しさん
垢版 |
2017/04/21(金) 14:51:20.94ID:T1EM2She
この業界趣味でやってる人の方が技術力高かったりするからね
サンデープログラマを馬鹿にしちゃいけない
2017/04/21(金) 15:30:29.00ID:YTf7CJ3G
>>427
俺は必要だと思ってるから無理だな
不要である理由を明確にするのはおまえだ
2017/04/21(金) 15:33:45.46ID:I/U40a25
データのカプセル化なんてプログラム上どこまで触って(参照/代入)いいかの線引きを決まりごとからシステム的に制限したかの違いなだけでしょ
c言語のFILE構造体の中身を参照する事はないでしょ。stdio.hに定義されていても
それは暗黙的な決まりごとだからだし、それをアクセス修飾子で明示したのがカプセル化って言葉なだけで昔からの決まりごととしては変わらない
431デフォルトの名無しさん
垢版 |
2017/04/21(金) 15:42:27.29ID:T1EM2She
>>429
どうして必要だと思ってるのか全量を言えよ、じゃないと理解できない
432デフォルトの名無しさん
垢版 |
2017/04/21(金) 15:46:08.76ID:T1EM2She
>>430
その決まりが要らないものだったんじゃないかっていうのが
カプセル化害悪論の骨子なんだよ

暗黙的なものは暗黙的なままでよかったんじゃないか?
なぜ明示する必要があったのか、それによってプログラムが
複雑になることを受け入れるのか、プログラムがブラックボックス化することに
歯止めをかけてクリーンなオブジェクト指向を取り戻そうというのが
カプセル化害悪論のモチベーション
2017/04/21(金) 15:49:33.07ID:YTf7CJ3G
>>431
聞いてるのはこっちだ
はぐらかすな
434デフォルトの名無しさん
垢版 |
2017/04/21(金) 15:51:44.08ID:T1EM2She
>>433
聞き返したのは俺だ、ちゃんと全量を示せ、逃げるな
2017/04/21(金) 15:55:05.36ID:YTf7CJ3G
質問に対する答えが質問になる程度の考えしか持たぬならもういいわ
436デフォルトの名無しさん
垢版 |
2017/04/21(金) 15:55:47.07ID:T1EM2She
>>435
捨て台詞まで吐いて逃げるのな?
437デフォルトの名無しさん
垢版 |
2017/04/21(金) 15:56:28.58ID:T1EM2She
もういいわて、お前は漫才師か!
2017/04/21(金) 15:57:50.64ID:YTf7CJ3G
そだね
439デフォルトの名無しさん
垢版 |
2017/04/21(金) 15:59:01.00ID:T1EM2She
はい逃げた、結局カプセル化を支持するやつって中身のないその場限りの
見栄を張って問い詰められたら逃げるだけの俄かなんだよな
2017/04/21(金) 16:01:17.62ID:YTf7CJ3G
そだね
2017/04/21(金) 16:01:35.09ID:I/U40a25
>>432
カプセル化害悪論ってのは一理あるし正しいと思うけどね
性善説と性悪説みたいなところだから正解はでないと思うし
ただ、このスレのカプセル化反対の意見はそんなレベルの話じゃない、そもそも議題のカプセル化の認識ズレの話なんじゃないのかな
2017/04/21(金) 16:08:41.18ID:rPWpf+kQ
>>424
それは説明したじゃん
402がすべてだよ
2017/04/21(金) 16:14:29.43ID:9S9WRWBb
>>441
カプセル化反対の二人はカプセル化の利害を全然理解していないよね。
害があるからいらないではなく、わからないからいらないと言っている。
2017/04/21(金) 16:20:27.91ID:rPWpf+kQ
>>443
んでメリットの説明ってあったっけ?
2017/04/21(金) 16:20:44.14ID:YTf7CJ3G
>>442
明確になってねーよ
仮にアレで全てだというなら『まず』とか『ここまで』などと言うな
2017/04/21(金) 16:22:11.78ID:jkmg2197
カプセル化害悪派 <------- 結合度ビーーーーム
死亡
2017/04/21(金) 16:35:15.00ID:9S9WRWBb
>>444
例えば>>403がそうだ。
自分だけが使い仕様変更があったら変更するつもりのメンバ変数やメンバ関数は
勝手に他人に参照されたり呼びだされると変更できなくなって困る。
2017/04/21(金) 16:41:52.97ID:uAFMuOM4
どうでもいいけどメリデメって略すの嫌い
2017/04/21(金) 16:43:18.10ID:jkmg2197
カプセル化害悪論って、どっかで聞きかじった継承害悪論とごっちゃになってるんじゃないのか?
450
垢版 |
2017/04/21(金) 16:49:15.74ID:KFYgHFHL
>>423
どちらでも無いと思うよ。少なくともどちらかへの「べき」ではない。
隠したいものは隠せばいいし、機械へのポカヨケを埋め込むのも今もうすでに実行不可なメモリみたいなどこのハーバードアーキテクチャだよみたいなの再発明してんじゃん。
2017/04/21(金) 17:12:45.41ID:9S9WRWBb
>>449
>>216はごっちゃにしているね。

実装継承は20年前に「継承より委譲」と言われていた。
その後のEJB2の複雑さの反動でPOJOブームが起きた。
でもカプセル化害悪論なんて聞いたことがない。
2017/04/21(金) 17:31:41.72ID:jkmg2197
>>199みたいな、ここまでがっちり結合したコードを良しとする人が、数万行程度コードを書いたらどんなことになるのか見てみたいわ
453デフォルトの名無しさん
垢版 |
2017/04/21(金) 18:00:15.36ID:T1EM2She
>>452
おめーのコード出してもらおうか
俺はそれを複雑すぎるとさんざんにこき下ろすから
他人のコードにいちゃもんつけて自分のコードは出しませんなんて
そんなのありえないだろ、ベッドで女のパンツ脱がして
自分はスリーピースをぴっちり着込んでるようなもの
どちらが変態化は言うまでもないよね?
454デフォルトの名無しさん
垢版 |
2017/04/21(金) 18:03:14.83ID:T1EM2She
>>451
やはりな、継承はオブジェクト指向に必要ないよな
POJOはたしかに話題にはなったが、まだJavaBeansの呪縛から
脱しきれてない過剰カプセル化によって逆に脆くなった
設計ばかりが出回った

いままでは聞いたことがなかっただろうが
もうお前は聞いたんだからこれからはカプセル化害悪論を
聞いたことがあるというべきだし、すぐれた設計だと
後世に伝えていくべき
2017/04/21(金) 18:04:56.46ID:YTf7CJ3G
>>453
おまえはおまえのコード以外を認めないんだから黙ってろ
456デフォルトの名無しさん
垢版 |
2017/04/21(金) 18:05:19.93ID:T1EM2She
>>455
……
2017/04/21(金) 18:07:31.03ID:jkmg2197
>>453
別に俺が出すまでもなく、世の中にはそこそこSOLIDを目指したなかなかのコードが死ぬほど公開されてるんだが

> 俺はそれを複雑すぎるとさんざんにこき下ろすから
それらが読めないとしたら、それは複雑すぎる場合もあるだろうが、大抵は君のスキル不足だろうね
試しにgitfubから有名どころの1万行以上のプロダクトを選択してこきおろしてみたら?
2017/04/21(金) 18:11:31.05ID:YTf7CJ3G
>>454
>いままでは聞いたことがなかっただろうが
もうお前は聞いたんだからこれからはカプセル化害悪論を
>聞いたことがあるというべきだし、すぐれた設計だと
>後世に伝えていくべき

一切論じられてないよ
悪いんだけどどこらで論じてたのか教えてくれる?
459デフォルトの名無しさん
垢版 |
2017/04/21(金) 18:11:49.39ID:T1EM2She
>>457
お前は俺のコードにいちゃもんつけたから
俺はお前のコードにいちゃもんつける
それてフィフティフィフティだ
さあ出してもらおうか、お前の全力を見せろ
2017/04/21(金) 18:12:34.04ID:jkmg2197
>>453
選ぶの面倒とかいいそうだから、俺が選んでやろう
Javaで実装された超有名プロダクト
https://github.com/kohsuke/jenkins
ほら、駄目だししてみ?
461デフォルトの名無しさん
垢版 |
2017/04/21(金) 18:13:54.37ID:T1EM2She
>>458
>>322 この辺とかすごくいい議論ができてるしとても有益でためになると思う
462デフォルトの名無しさん
垢版 |
2017/04/21(金) 18:14:43.96ID:T1EM2She
>>460
お前は俺のコードにいちゃもんつけたから
俺はお前のコードにいちゃもんつける
それてフィフティフィフティだ
さあ出してもらおうか、お前の全力を見せろ
他人のふんどしで相撲取ろうとするな卑怯者
463デフォルトの名無しさん
垢版 |
2017/04/21(金) 18:15:18.80ID:T1EM2She
とうぜんキャットドア問題を解決するコードだ
464デフォルトの名無しさん
垢版 |
2017/04/21(金) 18:16:17.62ID:T1EM2She
結局キャットドア問題を解決できたの俺だけじゃん
カプセル化を導入してたらできてなかったと思う
俺は歴史の生き証人
2017/04/21(金) 18:17:40.73ID:jkmg2197
>>462,463
俺には難しすぎて読めませんって白状しろよ
466デフォルトの名無しさん
垢版 |
2017/04/21(金) 18:17:51.34ID:T1EM2She
キャットドア問題をオブジェクト指向で解決してください
権威や数の力は不要だ、オブジェクト指向をわかっているなら
自力で解決できるはずだ
2017/04/21(金) 18:18:26.45ID:YTf7CJ3G
>>461
悪いんだけど根拠のない言い合いに意味はないよ
根拠を示してくれる?
2017/04/21(金) 18:18:45.77ID:jkmg2197
>>464
そもそも、キャットドア問題とか知らんし
他人のコード書いてほしけりゃ、仕様示せ
469デフォルトの名無しさん
垢版 |
2017/04/21(金) 18:19:13.64ID:T1EM2She
>>465
で、キャットドア問題を解決するオブジェクト指向のお前が書いたコードは?
俺は書いたよ、お前にいちゃもんつけられたけど
だから、俺はお前が書いたコードをボコボコに貶してやる所存だけど
お前はその覚悟もできてるし受けて立つ実力もあるんだよな
じゃあコードを書いてもらおうか
470デフォルトの名無しさん
垢版 |
2017/04/21(金) 18:20:45.36ID:T1EM2She
>>468
このスレにいて知らないはありえない
すれを検索すればすぐにでてくる >>6
471デフォルトの名無しさん
垢版 |
2017/04/21(金) 18:21:06.06ID:T1EM2She
仕様にいちゃもんつけて逃げたりしてw
2017/04/21(金) 18:21:25.26ID:jkmg2197
>>466
>>199程度のコードなら、誰がどう書いても複雑にはならんだろ
俺の>>199の批判ポイントはSOLIDだ

OCPはダメダメらしいが、S,L,I,Dも駄目なら批判しなよ
473デフォルトの名無しさん
垢版 |
2017/04/21(金) 18:21:43.58ID:T1EM2She
この手の手合いは他人を否定するけど自分では何も作れない木偶の坊と相場が決まってるからな
474デフォルトの名無しさん
垢版 |
2017/04/21(金) 18:22:17.82ID:T1EM2She
さて、どんなコード書くんだろうな、楽しみだわ
475デフォルトの名無しさん
垢版 |
2017/04/21(金) 18:23:03.71ID:T1EM2She
>>472
>>199は俺のコードだからパクっちゃだめだぞ、カンニングは卑怯な行為だからな
あくまで仕様を読んで作るんだぞ
2017/04/21(金) 18:23:31.45ID:jkmg2197
>>470
なんだ、>>199と全然違うじゃんか
俺は>>199の範囲で>>199のコードが糞だと断言するわwww
477デフォルトの名無しさん
垢版 |
2017/04/21(金) 18:24:37.49ID:T1EM2She
他人を否定すればするほど自分のハードルがあがるけど大丈夫なのかな
結局自分のコード書けないパターンをちゃくちゃくと歩んでるようだけど大丈夫なのかな
逃げ出しそうだぞ、大丈夫なのかな
2017/04/21(金) 18:26:54.78ID:YTf7CJ3G
>>477
カプセル化害悪論の根拠を示してくれるかな?
479デフォルトの名無しさん
垢版 |
2017/04/21(金) 18:27:35.87ID:T1EM2She
>>478
……
2017/04/21(金) 18:28:40.65ID:YTf7CJ3G
>>479
あ、根拠ないんだね
了解
481デフォルトの名無しさん
垢版 |
2017/04/21(金) 18:29:00.98ID:T1EM2She
……
482デフォルトの名無しさん
垢版 |
2017/04/21(金) 18:29:47.23ID:T1EM2She
黙ってろって言われたから黙らざるを得ないのに
それで了解とか自己完結しすぎだと思う、病んでるよ彼は病んでるよ
2017/04/21(金) 18:30:19.40ID:YTf7CJ3G
>>482
じゃあ黙り続けろよ
484デフォルトの名無しさん
垢版 |
2017/04/21(金) 18:30:38.43ID:T1EM2She
>>483
……
485デフォルトの名無しさん
垢版 |
2017/04/21(金) 18:30:56.12ID:T1EM2She
俺のことは寡黙な人と呼んでくれ
2017/04/21(金) 18:31:20.37ID:YTf7CJ3G
>>485
黙ってねーじゃねーか
487デフォルトの名無しさん
垢版 |
2017/04/21(金) 18:32:01.93ID:T1EM2She
>>486
クソレスすんなハゲ
2017/04/21(金) 18:33:35.27ID:YTf7CJ3G
>>487
ごめんね
ハゲでごめんね^^
489デフォルトの名無しさん
垢版 |
2017/04/21(金) 18:36:02.42ID:T1EM2She
ハゲもプログラム書けんの?
書けるんだったらオブジェクト指向でキャットドア問題に調整してほしい
490
垢版 |
2017/04/21(金) 18:39:02.82ID:KFYgHFHL
あのドアってこういう話の発端から出てきた問題だったんだな。
オブジェクト指向で、ってそういう事か、なるほど。
ナンセンスだな。

何を以ってドアと成立するか定義できてるようで出来てない。
定義1を死守したければ、俺なら定義1は定義0の子クラスにして、定義2は定義1を継承せずに定義0から作るわ。
定義0は最終的にObjectに収斂する。

クラス設計を破壊せずに性質を追加ってのが矛盾してる。
ワイン樽と泥水の問題。
491デフォルトの名無しさん
垢版 |
2017/04/21(金) 18:42:27.87ID:T1EM2She
↑こうやって仕様に文句を付けて
コードから逃げる人間は飽きるほど見てきた

オブジェクト指向のコードをかける人間はいないのか
492
垢版 |
2017/04/21(金) 18:45:08.24ID:KFYgHFHL
>>491
俺どっかで書いたぞ
493デフォルトの名無しさん
垢版 |
2017/04/21(金) 18:46:48.77ID:T1EM2She
>>492
それどこよ? どれよ? どこなのよ? どこーーー!!
494デフォルトの名無しさん
垢版 |
2017/04/21(金) 18:47:06.08ID:T1EM2She
取り乱してしまいまして
495
垢版 |
2017/04/21(金) 18:48:45.01ID:KFYgHFHL
もちろん、オブジェクト指向が役に立ちづらい、リアルな機械はそもそもコンポーネント指向で作るとも書いたし、コード自体適当なのも確かだが。
860 あ sage 2017/04/14(金) 08:00:23.71 ID:6kAIEFCu
ゴルーチンでドアとノブとストッパーとオートクローザーと個々に置いて、Channelで疎通させたらgoっぽい現実解になった。
ドアノブがあるとは限らんし、ドアノブとは別に鍵があるかもしれんし、とか思うと埋め込みではうまくいかんな。
この辺は機械と同じでコンポーネントにしとかないと後でわけわからん便利ボタン作られたときに面倒くさいと構えてしまったわ。
ラダーのほうがわかりやすいのかけるかも。
しかしideoneすげえな。
866 あ sage 2017/04/14(金) 10:26:30.48 ID:6kAIEFCu
>>862
http://ideone.com/yvttId
496
垢版 |
2017/04/21(金) 18:53:00.35ID:KFYgHFHL
何でわざわざ関数作ったのに放棄してクロージャ変数にしてるか見たら、カプセル化がオブジェクト指向の専売でもなけりゃ普遍的に便利なものか気づくだろ。
497デフォルトの名無しさん
垢版 |
2017/04/21(金) 18:59:03.34ID:T1EM2She
>>496
クロージャがカプセル化じゃないとしたら
カプセル化害悪論には賛成していただけるよね?
498
垢版 |
2017/04/21(金) 19:05:27.23ID:dftFol4E
>>497
クロージャはカプセル化で、カプセル化害悪論には大反対だ。
カプセル化されてるから、ドアは責任を持ってイベントに対して好きなことを好きなだけできるし、他人はそれに関与せずにイベントの投げ合いで済む。
鍵のないドアだってあるんだから。
499
垢版 |
2017/04/21(金) 19:06:54.30ID:dftFol4E
見せたくないものを隠すんだけじゃない。
見て不快なものが目に入らないようにするためにも使えるんだよ。
NHKの入らないテレビみたいなもんだ。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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