■危険性
かつて偏差値の低い学校向けの情報処理系教科書において「カプセル化は大変すばらしいものであり絶対に使うように」と大体的に宣伝された。
一方、カリフォルニア大学バークレー校の有識者を中心とした「インターネットを作った人たち」は「階層化の有害性(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)
カプセル化は愚かな考え
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2020/07/29(水) 17:17:58.13ID:u638n5uE739デフォルトの名無しさん
2020/08/31(月) 00:15:22.32ID:RyTJNMW1 ループの実装であっても
「関数は同じ引数を与えられた場合、同じ値を返す」
を満たすから参照透過性があると考えて
関数型プログラミングとみなしてもよいと僕は思います
「関数は同じ引数を与えられた場合、同じ値を返す」
を満たすから参照透過性があると考えて
関数型プログラミングとみなしてもよいと僕は思います
740デフォルトの名無しさん
2020/08/31(月) 01:34:59.59ID:abwkhqHt >>738
おお、これは
wiki は「関数っぽさ」の説明のためであって、ほんとはこうなのかな
共通テーブルは自己参照が1個しか書けないから、2個前が参照できず、
そのように前の加算結果も最新行に保持するしかないなと、思ったところで断念w
declare @n int =0;
select n =@n into #n;
while @n<10 begin set @n =@n+1; insert #n select @n; end;
--↑整数マスタがあるとして
with nn(n, f, f1) as (
select n, f =1, f1 =0 from #n where n>=2 and n<=10
union all
select n.n, f =n1.f1, f1 =n1.f+n1.f1
from #n n inner join nn n1 on n1.n=n.n-1
)
select sum(f)+1 from nn;
drop table #n;
最後の+1が逃げっぽいけどw
共通テーブルは1個の上に外部結合も許可されず(できたとろこでスマートになるかは不明)
しかし同じ発想のようで、そっちは途中経過が綺麗な数列
こっちは意味不明な45レコード
その上、意味不明度が上がるのでやめた方がいいなw
おお、これは
wiki は「関数っぽさ」の説明のためであって、ほんとはこうなのかな
共通テーブルは自己参照が1個しか書けないから、2個前が参照できず、
そのように前の加算結果も最新行に保持するしかないなと、思ったところで断念w
declare @n int =0;
select n =@n into #n;
while @n<10 begin set @n =@n+1; insert #n select @n; end;
--↑整数マスタがあるとして
with nn(n, f, f1) as (
select n, f =1, f1 =0 from #n where n>=2 and n<=10
union all
select n.n, f =n1.f1, f1 =n1.f+n1.f1
from #n n inner join nn n1 on n1.n=n.n-1
)
select sum(f)+1 from nn;
drop table #n;
最後の+1が逃げっぽいけどw
共通テーブルは1個の上に外部結合も許可されず(できたとろこでスマートになるかは不明)
しかし同じ発想のようで、そっちは途中経過が綺麗な数列
こっちは意味不明な45レコード
その上、意味不明度が上がるのでやめた方がいいなw
741デフォルトの名無しさん
2020/08/31(月) 01:56:42.46ID:abwkhqHt 共通テーブルのサンプルを見ると、20年前の若気の至りを思い出すな
リレーショナルだから、2列のキーのみで可変階層がスマートじゃないかと
できるからって工事の積算なんかに使うと、えらいことになる
20年前と今ではPCの性能違うだろうけど
現実には階層を固定で持っても十数列で済んだり、なんなら255列用意しても大したことない
泥臭くてもその方が圧倒的に速く、再利用性も高いのが現実
リレーショナルだから、2列のキーのみで可変階層がスマートじゃないかと
できるからって工事の積算なんかに使うと、えらいことになる
20年前と今ではPCの性能違うだろうけど
現実には階層を固定で持っても十数列で済んだり、なんなら255列用意しても大したことない
泥臭くてもその方が圧倒的に速く、再利用性も高いのが現実
742デフォルトの名無しさん
2020/08/31(月) 09:44:30.49ID:wxThvNjw 構造化プログラミングの再帰処理で階乗やディレクトリ探索しか例がない理由を考えたことあるのか。
逆に、分岐条件や判定が複雑に入り混じったいわゆる手続きを関数型で実現する例が少ない理由を考えたことがあるのか。
関数バカは死ね。
逆に、分岐条件や判定が複雑に入り混じったいわゆる手続きを関数型で実現する例が少ない理由を考えたことがあるのか。
関数バカは死ね。
743デフォルトの名無しさん
2020/08/31(月) 09:55:23.77ID:zAiif6l8 > 構造化プログラミングの再帰処理で階乗やディレクトリ探索しか例がない理由を考えたことあるのか。
再帰処理をしたことがない人でも知っているものだからだよ
> 逆に、分岐条件や判定が複雑に入り混じったいわゆる手続きを関数型で実現する例が
例として持ち出す時、手続き型でも分岐条件や判定が複雑に入り混じったっものは使わないよ
理由はこれでいいと思うけど、
なんで関数バカは死ねって最後に捨て台詞はいたの?
再帰処理をしたことがない人でも知っているものだからだよ
> 逆に、分岐条件や判定が複雑に入り混じったいわゆる手続きを関数型で実現する例が
例として持ち出す時、手続き型でも分岐条件や判定が複雑に入り混じったっものは使わないよ
理由はこれでいいと思うけど、
なんで関数バカは死ねって最後に捨て台詞はいたの?
744デフォルトの名無しさん
2020/08/31(月) 11:08:51.82ID:f7jpNd8/ >>722
単純な再帰だと関数型言語でもスタック消費するけど、モナドのインスタンスになってる再帰関数や、末尾再帰はループにコンパイルされる。
(リストはモナドのインスタンスなので、リストを受け取ってリストを返す関数は再帰でもループになる。IOな関数も同じく)
手続き型言語でもC/C++とJavaScriptは末尾再帰のループ化は対応してる。
単純な再帰だと関数型言語でもスタック消費するけど、モナドのインスタンスになってる再帰関数や、末尾再帰はループにコンパイルされる。
(リストはモナドのインスタンスなので、リストを受け取ってリストを返す関数は再帰でもループになる。IOな関数も同じく)
手続き型言語でもC/C++とJavaScriptは末尾再帰のループ化は対応してる。
745デフォルトの名無しさん
2020/08/31(月) 11:19:36.36ID:ZrRJaCUf 愚かな・・・なんて愚かな・・・
※戦場のピアニスト
※戦場のピアニスト
746デフォルトの名無しさん
2020/08/31(月) 11:30:50.52ID:f7jpNd8/ >>742
?
条件分岐や判定が複雑に入り混じった様なのは、むしろ関数型言語や論理型言語の得意分野だけど・・・。
今まで関数型言語が苦手と言うか、純粋さを捨てていた手続きってのは
putStrLn str
print n
みたいな戻り値が無い関数(voidな関数や戻り値を普段は使わない関数)が続く様な処理や入出力。
これを順番を保証するのが難しかった。
そこを圏論でプログラム丸ごと関数の様なものとして順番を保証しつつ参照透明性を確保する事で大きな意味での(個人的に純粋とは言わない気もするが)純粋関数型言語を実現した。
putStrLn str >>= \_ -> print n
上の糖衣構文
putStrLn str >> print n
do形式で手続き型言語っぽく(手続き型言語っぽいとはいえ、しっかり関数型言語なので一つの巨大な式に還元される)
do
putStrLn str
print n
?
条件分岐や判定が複雑に入り混じった様なのは、むしろ関数型言語や論理型言語の得意分野だけど・・・。
今まで関数型言語が苦手と言うか、純粋さを捨てていた手続きってのは
putStrLn str
print n
みたいな戻り値が無い関数(voidな関数や戻り値を普段は使わない関数)が続く様な処理や入出力。
これを順番を保証するのが難しかった。
そこを圏論でプログラム丸ごと関数の様なものとして順番を保証しつつ参照透明性を確保する事で大きな意味での(個人的に純粋とは言わない気もするが)純粋関数型言語を実現した。
putStrLn str >>= \_ -> print n
上の糖衣構文
putStrLn str >> print n
do形式で手続き型言語っぽく(手続き型言語っぽいとはいえ、しっかり関数型言語なので一つの巨大な式に還元される)
do
putStrLn str
print n
747デフォルトの名無しさん
2020/08/31(月) 13:40:25.41ID:ZrRJaCUf これからの時代、多態性よりポリリズムのほうが重要。
748デフォルトの名無しさん
2020/08/31(月) 14:31:14.55ID:3l02ZOhc 何回繰り返すんだ…
749デフォルトの名無しさん
2020/08/31(月) 15:35:42.21ID:+mVf3WVi x,y,zをpos2d,zで持つことはないよねって100万回復唱しろ
750デフォルトの名無しさん
2020/08/31(月) 17:14:59.79ID:PbFnPWGE ネタスレのようだが
カプセル化は問題無い
隠蔽化が問題有る
カプセル化は問題無い
隠蔽化が問題有る
751デフォルトの名無しさん
2020/08/31(月) 18:06:13.87ID:+mVf3WVi 単純に実行しないとインターフェースから先に飛ぶことができないのも読みにくい
更にそこから先の処理の可能性がインターフェースを持つクラス全部とかこれまた読みにくい
更にそのクラスのインスタンスの違いについても追わなきゃいけなくて結果としてゴミクズ
更にそこから先の処理の可能性がインターフェースを持つクラス全部とかこれまた読みにくい
更にそのクラスのインスタンスの違いについても追わなきゃいけなくて結果としてゴミクズ
752デフォルトの名無しさん
2020/08/31(月) 18:45:27.41ID:Tn5kdrj1 カプセル化はいまいちメリットわからんよね
スコープの話なのに徹底できてない点がカプセル化の是非が定まらない原因
スコープの話なのに徹底できてない点がカプセル化の是非が定まらない原因
753デフォルトの名無しさん
2020/08/31(月) 18:49:04.49ID:+mVf3WVi カプセル化したくせにSetterとかGetter作ってるやつ見ると
「オメェ、ここおかしんじゃねーのか?」
って言いたくなる
アクセスをイベントに限定したいのか?
誰でもいつでもアクセスしたいのかスタンスをハッキリさせろよw
「オメェ、ここおかしんじゃねーのか?」
って言いたくなる
アクセスをイベントに限定したいのか?
誰でもいつでもアクセスしたいのかスタンスをハッキリさせろよw
754デフォルトの名無しさん
2020/08/31(月) 19:30:45.75ID:EhjC94Lv >>747
なにをいまさら
なにをいまさら
755デフォルトの名無しさん
2020/08/31(月) 20:27:11.07ID:JFSQLtY4756デフォルトの名無しさん
2020/08/31(月) 20:59:45.24ID:I/LqRe2u そうですか
757デフォルトの名無しさん
2020/08/31(月) 21:33:12.45ID:+mVf3WVi >>755
作るソース全部そんな感じの奴がいて邪魔くせぇ
wpfのINotifyPropertyChangedってさ関係ないイベントでも発火して制御できないよね
はじめはsetter、getterでやってたけどあかんわ
発火したいときとそうでないときと手動で分けられないとあかんわ
なんかこれ系のついでに何やらやっちゃおうシステムって開発終盤になると全部ゴミだな
作るソース全部そんな感じの奴がいて邪魔くせぇ
wpfのINotifyPropertyChangedってさ関係ないイベントでも発火して制御できないよね
はじめはsetter、getterでやってたけどあかんわ
発火したいときとそうでないときと手動で分けられないとあかんわ
なんかこれ系のついでに何やらやっちゃおうシステムって開発終盤になると全部ゴミだな
758デフォルトの名無しさん
2020/08/31(月) 21:44:33.69ID:wxThvNjw >>753
Java web appだと、lombock入れてカプセル化壊すのが当たり前になっちまった。
スマホアプリとか組み込み系とかでしっかりコーディングすればいいと諦めてる。
実際、Web アプリ界隈はバカばっかだし。割り切りも大切。
Java web appだと、lombock入れてカプセル化壊すのが当たり前になっちまった。
スマホアプリとか組み込み系とかでしっかりコーディングすればいいと諦めてる。
実際、Web アプリ界隈はバカばっかだし。割り切りも大切。
759デフォルトの名無しさん
2020/08/31(月) 21:48:45.10ID:SA/5RSYf >>758
https://codezine.jp/article/detail/7274
> Javaは言語仕様上の制約により、ボイラープレートコード(自明だが省略できないお決まりのコード断片)が
> いくつかあります。例えば、メンバ変数を読み書きするだけのgetterメソッドやsetterメソッドがこれにあたります。
> Lombokを使えば、これらJava特有の冗長なコードを、見やすく簡潔なものにすることができます。
>
> LombokではEclipseのような自動生成ではなく、アノテーションを付与することにより
> ボイラープレートコードを実装したのと同じ効果を得ることができます。
単にプロパティをアノテーションで書けるってだけだよね?
これのどこがカプセル化破壊になるの?
https://codezine.jp/article/detail/7274
> Javaは言語仕様上の制約により、ボイラープレートコード(自明だが省略できないお決まりのコード断片)が
> いくつかあります。例えば、メンバ変数を読み書きするだけのgetterメソッドやsetterメソッドがこれにあたります。
> Lombokを使えば、これらJava特有の冗長なコードを、見やすく簡潔なものにすることができます。
>
> LombokではEclipseのような自動生成ではなく、アノテーションを付与することにより
> ボイラープレートコードを実装したのと同じ効果を得ることができます。
単にプロパティをアノテーションで書けるってだけだよね?
これのどこがカプセル化破壊になるの?
760デフォルトの名無しさん
2020/08/31(月) 23:12:59.79ID:KpYRvIVn エラーチェックをしたいときはsetter
761デフォルトの名無しさん
2020/09/01(火) 00:02:49.23ID:TdzDL303 もしかして
貧血ドメインモデル
貧血ドメインモデル
762デフォルトの名無しさん
2020/09/01(火) 00:41:56.64ID:EzjTWAdj763デフォルトの名無しさん
2020/09/01(火) 00:52:29.54ID:PZXbhIm5 JavaBeansではセッタとメソッドは別の概念
セッタを通じて状態にアクセスすることでオブジェクトは
よりスマートになる
セッタを通じて状態にアクセスすることでオブジェクトは
よりスマートになる
764デフォルトの名無しさん
2020/09/01(火) 00:54:01.92ID:PZXbhIm5 一周回ってアクセサが再評価される段階に入った
765デフォルトの名無しさん
2020/09/01(火) 02:05:29.12ID:ETu8a3Hk766デフォルトの名無しさん
2020/09/01(火) 02:06:41.53ID:ETu8a3Hk 何がカプセル化だよ
settergetter使うなら丸出しと変わんねーよ
settergetter使うなら丸出しと変わんねーよ
767デフォルトの名無しさん
2020/09/01(火) 02:27:10.74ID:/xk9LnpH これからの時代、多態性よりポリフェノールのほうが重要。
768デフォルトの名無しさん
2020/09/01(火) 04:55:11.55ID:Z9W01AEm 下駄 雪駄
769デフォルトの名無しさん
2020/09/01(火) 09:15:18.95ID:G32wsX1x >>766
そんなわけないやろ。
そんなわけないやろ。
770デフォルトの名無しさん
2020/09/01(火) 09:26:14.90ID:PZXbhIm5 >>766
おいお前それはないよ
おいお前それはないよ
771デフォルトの名無しさん
2020/09/01(火) 10:03:35.97ID:EzjTWAdj772デフォルトの名無しさん
2020/09/01(火) 10:13:31.32ID:FqTPqd+i これこそ露出狂という奴だなw
773デフォルトの名無しさん
2020/09/01(火) 11:42:47.53ID:G32wsX1x 今時、意図せずフィールド丸出しはない
774デフォルトの名無しさん
2020/09/01(火) 11:53:13.42ID:4pPofKRH >>771
は?そもそもオブジェクト指向とか言うクソ使ってねーわ
は?そもそもオブジェクト指向とか言うクソ使ってねーわ
775デフォルトの名無しさん
2020/09/01(火) 12:14:48.18ID:lpkaZteT >>774
オブジェクト指向は既に俺の股間に付いているのだから、オブジェクト指向プログラミング言語は要らない!
オブジェクト指向は既に俺の股間に付いているのだから、オブジェクト指向プログラミング言語は要らない!
776デフォルトの名無しさん
2020/09/01(火) 12:27:07.84ID:wBGQmF0I だから適切なインターフェイス作成ができないなら素直に関数にしとけと。。
馬鹿に限って自分のクラス設計に自信持ってんだよな。。
馬鹿に限って自分のクラス設計に自信持ってんだよな。。
777デフォルトの名無しさん
2020/09/01(火) 12:50:13.91ID:/xk9LnpH CSSはJavascriptで実装されただけあって、仕様も混沌としてるな。
動的確保前提の設計なので、いちいちイラっとする。
動的確保前提の設計なので、いちいちイラっとする。
778デフォルトの名無しさん
2020/09/01(火) 12:52:31.23ID:1Eq9ttpo ハァ?
779デフォルトの名無しさん
2020/09/01(火) 12:59:45.89ID:/xk9LnpH 教科書は「後で説明するので今はそういうものだと思ってください」というのは無い。
前から順番に読んでいくと、説明なく出てくるものが無いのである。
仕様を書くときは、教科書のように書くことを徹底する。
するとどうなるか?
相互参照が無くなるのである。
相互参照が無くなれば、変数の大きさは一意に決まる。
つまり不要不急の動的確保が無くなるのである。
これがC/C++の掟である。
前から順番に読んでいくと、説明なく出てくるものが無いのである。
仕様を書くときは、教科書のように書くことを徹底する。
するとどうなるか?
相互参照が無くなるのである。
相互参照が無くなれば、変数の大きさは一意に決まる。
つまり不要不急の動的確保が無くなるのである。
これがC/C++の掟である。
780デフォルトの名無しさん
2020/09/01(火) 13:15:28.27ID:Z9W01AEm 今まで見たもっともひどいクラス設計は?
781デフォルトの名無しさん
2020/09/01(火) 13:22:15.49ID:EzjTWAdj782デフォルトの名無しさん
2020/09/01(火) 13:26:52.52ID:/xk9LnpH Javaのようなお猿さん言語はプリミティブ以外はすべて参照、つまり動的に確保される。
だからいつでもどこでも動的でいいのだなどと思わないでほしい。
あなた方はお猿さん。
そしてお猿さん用言語を使っている。
しかし、世の中には人間もいることを忘れないでほしい。
人間はもっと効率の良い設計を求めるものだ。
だからいつでもどこでも動的でいいのだなどと思わないでほしい。
あなた方はお猿さん。
そしてお猿さん用言語を使っている。
しかし、世の中には人間もいることを忘れないでほしい。
人間はもっと効率の良い設計を求めるものだ。
783デフォルトの名無しさん
2020/09/01(火) 13:31:17.95ID:EzjTWAdj Javaのような人間用言語はプリミティブ以外はすべて参照、つまり動的に確保される。
というふうに入れ替えても問題ないんじゃね?w
というふうに入れ替えても問題ないんじゃね?w
784デフォルトの名無しさん
2020/09/01(火) 13:35:01.05ID:/xk9LnpH 入れ替えた場合、C/C++は天才用言語になるからダメだ。
785デフォルトの名無しさん
2020/09/01(火) 14:09:37.70ID:FqTPqd+i >>779
小学生の教科書からやり直せ
小学生の教科書からやり直せ
786デフォルトの名無しさん
2020/09/01(火) 14:12:06.91ID:ETu8a3Hk 脳筋プログラマばっかりだな
787デフォルトの名無しさん
2020/09/01(火) 15:05:15.80ID:OC0cfHje >>780
MFC
MFC
788デフォルトの名無しさん
2020/09/01(火) 15:29:52.72ID:fuWow3G5 >>781
高校までの教科書は大学入ったら全部役に立たないよなω
高校までの教科書は大学入ったら全部役に立たないよなω
789デフォルトの名無しさん
2020/09/01(火) 15:31:01.61ID:fuWow3G5 >>787
あれはただのwrapper以下だからなー
あれはただのwrapper以下だからなー
790デフォルトの名無しさん
2020/09/01(火) 15:51:55.50ID:/xk9LnpH MFCは30年前のライブラリだからな。
よくまあここまで生き残ったわ。
よくまあここまで生き残ったわ。
791デフォルトの名無しさん
2020/09/01(火) 16:28:44.96ID:fuWow3G5 同じ時期かそれより前にあった OWL の方が10000倍マシだった
792デフォルトの名無しさん
2020/09/01(火) 20:39:35.27ID:QR4OvP6I 御子を捨てよ、良いな?
793デフォルトの名無しさん
2020/09/01(火) 21:24:37.44ID:eOhMfKjO Delphi最強
794デフォルトの名無しさん
2020/09/01(火) 21:52:46.77ID:NYV7WRkk >>779
Javaの教科書には
class Test {
public static void main(argv[]) {
System.out.println("Hello");
}
とりあえずこれで動きます。「あとで説明するので今はそういうものだと思ってください」
と堂々と書いてあるぞ。
Javaの教科書には
class Test {
public static void main(argv[]) {
System.out.println("Hello");
}
とりあえずこれで動きます。「あとで説明するので今はそういうものだと思ってください」
と堂々と書いてあるぞ。
796デフォルトの名無しさん
2020/09/01(火) 23:46:39.13ID:cXm81OcM プロパティは、可変階層と同じく若気の興味本位系ではあるが
ベテランになってからも、いくつか使ったことはある
設定時処理のカプセル化
カプセル化と言っても隠したいわけじゃなく、設定する時に絶対にこの処理を通す、という便利機能
「発火」は未経験だが、下手な作りだとなり得る構造だね
ちゃんとできてたとしても、よほどの事情がない限り、普通の関数で書いた方がシンプルで理解もしやすいと思う
なぜ使ったのか、過去ソースを見てみたら、なるほどw
SET時だけでなくGET時にも複雑な処理があるものがあり、これをそれぞれ関数で書くと、関数名が2倍に増える
少なくとも関数名の数を半分にする効能はある
言ってみれば1つの関数に2つの内部関数がある構造なので
ベテランになってからも、いくつか使ったことはある
設定時処理のカプセル化
カプセル化と言っても隠したいわけじゃなく、設定する時に絶対にこの処理を通す、という便利機能
「発火」は未経験だが、下手な作りだとなり得る構造だね
ちゃんとできてたとしても、よほどの事情がない限り、普通の関数で書いた方がシンプルで理解もしやすいと思う
なぜ使ったのか、過去ソースを見てみたら、なるほどw
SET時だけでなくGET時にも複雑な処理があるものがあり、これをそれぞれ関数で書くと、関数名が2倍に増える
少なくとも関数名の数を半分にする効能はある
言ってみれば1つの関数に2つの内部関数がある構造なので
797デフォルトの名無しさん
2020/09/02(水) 00:29:23.85ID:KTyhBksd ベテランねー
798デフォルトの名無しさん
2020/09/02(水) 01:31:27.80ID:J/rUgEv/ 関数でもできるな
引数が未設定ならGET動作に切り替わると
実際そういう関数も作る
プロパティだと逆に2個になってしまう言語の場合
引数が未設定ならGET動作に切り替わると
実際そういう関数も作る
プロパティだと逆に2個になってしまう言語の場合
799デフォルトの名無しさん
2020/09/02(水) 01:58:36.95ID:HgpWbw0i 藻前ラ、モチツケ
https://i.imgur.com/DJzoN7F.jpg
https://i.imgur.com/DJzoN7F.jpg
800デフォルトの名無しさん
2020/09/02(水) 08:33:16.30ID:yy35G5fq801デフォルトの名無しさん
2020/09/02(水) 09:26:13.66ID:9/rkp9iy 単純なValueオブジェクトはCとかだと
struct Color {
int r, g, b;
};
Color color;
int red = color.r;
みたいに書けるところをわざわざgetter/setter毎回作るの?
アホらしくない?
struct Color {
int r, g, b;
};
Color color;
int red = color.r;
みたいに書けるところをわざわざgetter/setter毎回作るの?
アホらしくない?
802デフォルトの名無しさん
2020/09/02(水) 10:33:19.59ID:ifuz91bD >>800
何も言い返さないのかよw
何も言い返さないのかよw
803デフォルトの名無しさん
2020/09/02(水) 10:36:53.36ID:lZ/LLDT1 >>801
Valueオブジェクトって何か知ってる?
Valueオブジェクトって何か知ってる?
804デフォルトの名無しさん
2020/09/02(水) 11:10:55.31ID:Hwtp1D+h オブジェクト指向はフレームワーク実装者が意識すべきもの
フレームワーク利用者はその枠でただベタにアプリ実装すればよい
プロパティはフレームワーク実装側から見ると自分自身に対しては何も利益がないけど
フレームワーク利用者の行動をコントロールできるという点で利益がある
フレームワーク利用者はその枠でただベタにアプリ実装すればよい
プロパティはフレームワーク実装側から見ると自分自身に対しては何も利益がないけど
フレームワーク利用者の行動をコントロールできるという点で利益がある
805デフォルトの名無しさん
2020/09/02(水) 12:01:34.43ID:9/rkp9iy ValueオブジェクトってDDD関連で出てくる単語だったのね
その意味では知らなかったけど、そんなこと聞きたいんじゃない
その意味では知らなかったけど、そんなこと聞きたいんじゃない
806デフォルトの名無しさん
2020/09/02(水) 12:08:34.16ID:64Ct0prY >>801
必要なら作っていいし、必要ないならCみたいに書けばいい
必要なら作っていいし、必要ないならCみたいに書けばいい
807デフォルトの名無しさん
2020/09/02(水) 12:21:27.36ID:9/rkp9iy ホントかなぁJava触ってるやつらは
getter/setter使わず単にpublicフィールドにしたら
文句行ってきそうなイメージだったけど
getter/setter使わず単にpublicフィールドにしたら
文句行ってきそうなイメージだったけど
808デフォルトの名無しさん
2020/09/02(水) 12:33:16.41ID:KTyhBksd ValueObjectはReadOnlyが基本だからfinalにして変数をpublicにします
809デフォルトの名無しさん
2020/09/02(水) 13:30:42.14ID:FrAP3fk+ オブジェクト指向に対する愚痴を延々と続ける人には主に2つのタイプがある。
1つはその人にとってオブジェクト指向が新しいパラダイムでありそれを受け入れる事が出来なかった老害タイプ。
もう1つはJavaを通してしかオブジェクト指向を理解しようとしないJava屋の土方タイプ。
両方の属性を持ったタイプが最もタチが悪い。
1つはその人にとってオブジェクト指向が新しいパラダイムでありそれを受け入れる事が出来なかった老害タイプ。
もう1つはJavaを通してしかオブジェクト指向を理解しようとしないJava屋の土方タイプ。
両方の属性を持ったタイプが最もタチが悪い。
810デフォルトの名無しさん
2020/09/02(水) 13:31:38.92ID:6n47TPOy >>809
そもそも誰もメリット説明できてないけどねw
そもそも誰もメリット説明できてないけどねw
811デフォルトの名無しさん
2020/09/02(水) 13:53:16.93ID:HxHRAGOQ >>810
メリットがわからないなら使わなければいいだけ
メリットがわからないなら使わなければいいだけ
812デフォルトの名無しさん
2020/09/02(水) 13:56:40.83ID:6n47TPOy メリットのつもりだけどちっともメリットになってないやつがいるよな
不必要な階層化が明らかにバグ増やしてるやつ
やめとけって
不必要な階層化が明らかにバグ増やしてるやつ
やめとけって
813デフォルトの名無しさん
2020/09/02(水) 14:23:36.56ID:b48j9NlC814デフォルトの名無しさん
2020/09/02(水) 17:14:55.68ID:KTyhBksd C++のこれダサくない?
std::cout << "hello" ;
<<これダサくない?
イキりマンが設計したとしか思えない
std::cout << "hello" ;
<<これダサくない?
イキりマンが設計したとしか思えない
815デフォルトの名無しさん
2020/09/02(水) 17:53:01.12ID:6n47TPOy >>814
俺もクソだと思う
俺もクソだと思う
816デフォルトの名無しさん
2020/09/02(水) 17:57:46.65ID:PicHUi2j 明らかに (hoge)printf の方が使い易い
817デフォルトの名無しさん
2020/09/02(水) 18:23:05.03ID:oyfP4D/d C++でそれ使った事無かったなw
何故かhello worldではそのコードが書かれている事が多いけどw
何故かhello worldではそのコードが書かれている事が多いけどw
818デフォルトの名無しさん
2020/09/02(水) 18:31:49.16ID:X9xcF9vI std::cout << "hello" << std::endl;
819デフォルトの名無しさん
2020/09/02(水) 19:19:30.10ID:9/rkp9iy ダサいけどprintfのセキュリティ的な問題がないから使っておる
820デフォルトの名無しさん
2020/09/02(水) 21:24:37.75ID:Hwtp1D+h821デフォルトの名無しさん
2020/09/02(水) 21:42:32.36ID:/nOWjplL >>809
「オブジェクト指向を妄信する人への揶揄」が「オブジェクト指向に対する愚痴」に見えている可能性
「オブジェクト指向を妄信する人への揶揄」が「オブジェクト指向に対する愚痴」に見えている可能性
822デフォルトの名無しさん
2020/09/02(水) 21:44:17.02ID:vGE3/anR >>821
>「オブジェクト指向を妄信する人への揶揄」が
ならば「チンポがシコシコする」という日本語表現は、文法的に正しいのか?
チンポ「を」シコシコするのではなくて、チンポ「が」シコシコする。この場合、「チンポ」は主語となる。
オブジェクト指向で言う「集約」は2種類あって、全体(俺)と部分(チンポ)が繋がっている場合と、
全体(俺)と部分(チンポ)が別々になっている場合とが考えられる。けれども「チンポ」はそれ自体
が独立した生き物であり、所有者の意思とは無関係に、勃起して「シコシコする」。
例えば寝てる時にエロい夢みて朝起きてみたらチンコが勃起して射精してたとか。
違うか?
「胸がドキドキする」は良いが、「チンポがシコシコする」はダメな理由を、50字以内で述べろ!
>「オブジェクト指向を妄信する人への揶揄」が
ならば「チンポがシコシコする」という日本語表現は、文法的に正しいのか?
チンポ「を」シコシコするのではなくて、チンポ「が」シコシコする。この場合、「チンポ」は主語となる。
オブジェクト指向で言う「集約」は2種類あって、全体(俺)と部分(チンポ)が繋がっている場合と、
全体(俺)と部分(チンポ)が別々になっている場合とが考えられる。けれども「チンポ」はそれ自体
が独立した生き物であり、所有者の意思とは無関係に、勃起して「シコシコする」。
例えば寝てる時にエロい夢みて朝起きてみたらチンコが勃起して射精してたとか。
違うか?
「胸がドキドキする」は良いが、「チンポがシコシコする」はダメな理由を、50字以内で述べろ!
823デフォルトの名無しさん
2020/09/02(水) 21:46:22.75ID:vGE3/anR824デフォルトの名無しさん
2020/09/02(水) 21:51:21.43ID:C0O9Iab7825デフォルトの名無しさん
2020/09/02(水) 21:51:33.18ID:iHJfSlZg >>811
老害のドカタに使わないという選択肢があると思うか?
選ぶ自由がない環境でしか生きられない上にリアルで相手にされないから5chで愚痴を言い続ける。
低脳低スキルを他者のせいにするメンタリティのやつには何言っても無駄よ。建設的議論にはなりえない。
老害のドカタに使わないという選択肢があると思うか?
選ぶ自由がない環境でしか生きられない上にリアルで相手にされないから5chで愚痴を言い続ける。
低脳低スキルを他者のせいにするメンタリティのやつには何言っても無駄よ。建設的議論にはなりえない。
826デフォルトの名無しさん
2020/09/02(水) 22:01:00.56ID:vGE3/anR >>810
「チンポがシコシコする」という日本語は、何かオカシイか?
「チンポがシコシコする」という日本語は、何かオカシイか?
827デフォルトの名無しさん
2020/09/03(木) 00:55:17.34ID:oPPXaQOW828デフォルトの名無しさん
2020/09/03(木) 01:19:00.75ID:UIrbSeQG 藻前ラ、モチツケ
https://i.imgur.com/2QRRE2u.jpg
https://i.imgur.com/2QRRE2u.jpg
829デフォルトの名無しさん
2020/09/03(木) 11:50:45.09ID:DK3Ul6vK 誰?
タイトルは?
タイトルは?
830デフォルトの名無しさん
2020/09/03(木) 12:14:39.09ID:HRrMH9TX >>829
必死だな(藁
必死だな(藁
831デフォルトの名無しさん
2020/09/03(木) 14:28:11.70ID:GKTly5Nv SubjectとObjectの違い
832デフォルトの名無しさん
2020/09/03(木) 17:30:23.79ID:9nAKzDdi 結局これ人間性の問題なのよ。
カプセル化を容認するような人間は、犯罪も容認するし、なにも守れない。
カプセル化を容認するような人間は、犯罪も容認するし、なにも守れない。
833デフォルトの名無しさん
2020/09/03(木) 17:31:02.51ID:ZSeh1kM5 >>814
それがかっこよかったんだよ。
それがかっこよかったんだよ。
834デフォルトの名無しさん
2020/09/03(木) 17:31:54.36ID:ZSeh1kM5 型安全なprintfですんだ話し
835デフォルトの名無しさん
2020/09/03(木) 18:52:57.27ID:D+Mzdye0 僕はオチンチニストです
836デフォルトの名無しさん
2020/09/03(木) 21:35:19.31ID:9nAKzDdi オポンティーヌと言えば、あわしろいくやを連想してしまうな。
837デフォルトの名無しさん
2020/09/03(木) 23:15:25.43ID:/DfmFXGp オブジェクト指向否定する前に小学校の国語からやりなおせカス
838デフォルトの名無しさん
2020/09/03(木) 23:26:55.29ID:s/nu4dlU >>837
オブジェクト指向は俺の股間に付いているからな!
オブジェクト指向は俺の股間に付いているからな!
839デフォルトの名無しさん
2020/09/03(木) 23:44:41.85ID:HRrMH9TX ズンドコベロンチョは至高!
ズンドコベロンチョ否定する前に小学校の国語からやりなおせカス
何にでも使える。
ズンドコベロンチョ否定する前に小学校の国語からやりなおせカス
何にでも使える。
■ このスレッドは過去ログ倉庫に格納されています
