前スレ
オブジェクト指向って自然な文法だな 2
http://echo.2ch.net/test/read.cgi/tech/1490506257/
探検
オブジェクト指向って自然な文法だな 3 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2017/04/02(日) 16:30:38.65ID:n7h/bBRg
205デフォルトの名無しさん
2017/04/19(水) 11:36:32.83ID:ZFpUIjRr >>199
n種類の操作主体がいて、m種類の操作対象があるとき、DoorOpener的なクラスをm個作り、それぞれにnこのメソッドを作るのか?
操作主体が一つ増えると、既存のm個のクラスにそれぞれ一つのメソッドを追加する必要がある
また、操作対象が一つ増えると、あらたにn個のメソッドを作成する必要がある
n種類の操作主体がいて、m種類の操作対象があるとき、DoorOpener的なクラスをm個作り、それぞれにnこのメソッドを作るのか?
操作主体が一つ増えると、既存のm個のクラスにそれぞれ一つのメソッドを追加する必要がある
また、操作対象が一つ増えると、あらたにn個のメソッドを作成する必要がある
206デフォルトの名無しさん
2017/04/19(水) 12:10:38.64ID:rIlDsUIc >>205
ドアを障子に変えてくれって要求があるかもしれないし、もしものことを考えて複雑に作るより今の要求を満たす必要最小限にしておけば作り直しやすいのじゃないかな
ドアを障子に変えてくれって要求があるかもしれないし、もしものことを考えて複雑に作るより今の要求を満たす必要最小限にしておけば作り直しやすいのじゃないかな
207デフォルトの名無しさん
2017/04/19(水) 12:15:05.34ID:rIlDsUIc208デフォルトの名無しさん
2017/04/19(水) 12:20:37.70ID:rIlDsUIc 継承もカプセル化もオブジェクト指向には必要ない
クラスを作る、つまり型を定義する事こそがオブジェクト指向
クラスを作る、つまり型を定義する事こそがオブジェクト指向
209デフォルトの名無しさん
2017/04/19(水) 12:29:42.19ID:xWugx3VW 複数性が重要事項
210デフォルトの名無しさん
2017/04/19(水) 12:32:00.02ID:rIlDsUIc 文字コードを相互に変換するときいったんウニコードに変換するように、対象や主体をそれぞれ抽象化オブジェクトに変換すればよいのかもね
対象と主体の操作は抽象化オブジェクトに対して行うようにしておけば、対象や主体が増えたとしても抽象化オブジェクトへの変換だけ実装すればよい
対象と主体の操作は抽象化オブジェクトに対して行うようにしておけば、対象や主体が増えたとしても抽象化オブジェクトへの変換だけ実装すればよい
211デフォルトの名無しさん
2017/04/19(水) 12:55:20.19ID:rIlDsUIc 抽象化オブジェクトに変換を行うトランスフォーマクラスと抽象化オブジェクトに対する操作を行うプロセッサクラスがある
具象オブジェクトが追加されたときはトランスフォーマとプロセッサを変える必要がある
見通しはいいかもわからんね、抽象化オブジェクトの関係は一箇所に集約されるから
具象オブジェクトが追加されたときはトランスフォーマとプロセッサを変える必要がある
見通しはいいかもわからんね、抽象化オブジェクトの関係は一箇所に集約されるから
212デフォルトの名無しさん
2017/04/19(水) 12:55:21.77ID:cvkGewar pコードみたいだな
213デフォルトの名無しさん
2017/04/19(水) 12:56:19.07ID:rIlDsUIc やっぱオブジェクト指向最高だな
214デフォルトの名無しさん
2017/04/19(水) 13:42:18.93ID:Rk+PkBJv >>207
木偶の坊が何か実装するときに何も考えさせないためにカプセル化するんだと思ってたわ
木偶の坊が何か実装するときに何も考えさせないためにカプセル化するんだと思ってたわ
215デフォルトの名無しさん
2017/04/19(水) 13:49:21.08ID:ZFpUIjRr >>206
> ドアを障子に変えてくれって要求があるかもしれないし、もしものことを考えて複雑に作るより今の要求を満たす必要最小限にしておけば作り直しやすいのじゃないかな
まあ、あのコードが最小限だとして、その範囲ですらOCPに違反してるんじゃないですかねって指摘なんだが。
> ドアを障子に変えてくれって要求があるかもしれないし、もしものことを考えて複雑に作るより今の要求を満たす必要最小限にしておけば作り直しやすいのじゃないかな
まあ、あのコードが最小限だとして、その範囲ですらOCPに違反してるんじゃないですかねって指摘なんだが。
216デフォルトの名無しさん
2017/04/19(水) 19:01:16.59ID:rIlDsUIc >>215
ocpは耄碌したメイヤおじさんの考えだろ
オブジェクト指向がブラッシュアップされる前の
無駄の塊だった頃の話だ
最新のオブジェクト指向では継承もカプセル化も
害悪でしかないことがわかってる
ocpは耄碌したメイヤおじさんの考えだろ
オブジェクト指向がブラッシュアップされる前の
無駄の塊だった頃の話だ
最新のオブジェクト指向では継承もカプセル化も
害悪でしかないことがわかってる
217デフォルトの名無しさん
2017/04/19(水) 19:03:57.03ID:rIlDsUIc >>214
オブジェクト指向が浸透するまでは有益だったかもしれないが、今や誰もがオブジェクト指向を熟知し使いこなす時代、カプセル化はロジックを不鮮明にするノイズでしかない
オブジェクト指向が浸透するまでは有益だったかもしれないが、今や誰もがオブジェクト指向を熟知し使いこなす時代、カプセル化はロジックを不鮮明にするノイズでしかない
218デフォルトの名無しさん
2017/04/19(水) 19:06:43.59ID:rIlDsUIc メイヤおじさんは実装の継承を推奨する老害だからな
バージョン管理ソフト使えよと
バージョン管理ソフト使えよと
219デフォルトの名無しさん
2017/04/19(水) 19:09:12.02ID:rIlDsUIc プレインクラスこそオブジェクト指向の本質
220デフォルトの名無しさん
2017/04/19(水) 19:29:36.25ID:/l6NHl5b >>217
不鮮明となるのであればそれは用件が曖昧であるためカプセル化できてないと俺は考える
エンジンの仕組みを知らなくてもアクセルを踏めば車は動くようにわざわざ考える必要もない事は隠蔽しちゃおうぜ!ってのがカプセル化だと思ってる
まぁ解釈はそれぞれだから合わせてもらわなくていいけどね
不鮮明となるのであればそれは用件が曖昧であるためカプセル化できてないと俺は考える
エンジンの仕組みを知らなくてもアクセルを踏めば車は動くようにわざわざ考える必要もない事は隠蔽しちゃおうぜ!ってのがカプセル化だと思ってる
まぁ解釈はそれぞれだから合わせてもらわなくていいけどね
221デフォルトの名無しさん
2017/04/19(水) 19:35:54.11ID:XuQTPPrh フスマと回転扉で同じキャットドアで済むわけないじゃん
これを違うものとして組めないコードは問題
結局、キャットドアなんだよ
これを違うものとして組めないコードは問題
結局、キャットドアなんだよ
222デフォルトの名無しさん
2017/04/19(水) 19:37:09.40ID:rIlDsUIc >>220
それもそうだな
それもそうだな
223デフォルトの名無しさん
2017/04/19(水) 19:39:26.07ID:rIlDsUIc224デフォルトの名無しさん
2017/04/19(水) 19:45:45.55ID:d/SqmCf2 >カプセル化はロジックを不鮮明にするノイズでしかない
寝言にもほどがある
中が丸見えで依存しまくってたら
何かするたびに処理の全体追わなきゃいけなくなるだろうが
寝言にもほどがある
中が丸見えで依存しまくってたら
何かするたびに処理の全体追わなきゃいけなくなるだろうが
225デフォルトの名無しさん
2017/04/19(水) 19:52:16.42ID:XuQTPPrh >>223
フスマと回転扉で同じキャットドアが使えると思ってらっしゃる?
フスマと回転扉で同じキャットドアが使えると思ってらっしゃる?
226デフォルトの名無しさん
2017/04/19(水) 19:56:33.37ID:qJxXjZRc227デフォルトの名無しさん
2017/04/19(水) 20:00:55.07ID:qOdNs+TP >>225
はい
はい
228デフォルトの名無しさん
2017/04/19(水) 20:01:49.80ID:qOdNs+TP >>224
依存しないように実装すれば良いが
依存しないように実装すれば良いが
229デフォルトの名無しさん
2017/04/19(水) 20:02:59.08ID:qOdNs+TP230デフォルトの名無しさん
2017/04/19(水) 20:05:24.07ID:d/SqmCf2 >>228
間違ってしちゃうかもしれないし、どっかで誰かがしちゃってるかもしれんだろ
間違ってしちゃうかもしれないし、どっかで誰かがしちゃってるかもしれんだろ
231デフォルトの名無しさん
2017/04/19(水) 20:07:46.83ID:d/SqmCf2 あまりにもオブジェクト指向が当たり前になりすぎて、それがもたらしてくれるものを忘れてるだけだ
Cに++なんてついてなかった時代
配列を関数に渡すとき一緒に配列の長さを引数で渡してた
地獄のような時代があったんだぞ…
Cに++なんてついてなかった時代
配列を関数に渡すとき一緒に配列の長さを引数で渡してた
地獄のような時代があったんだぞ…
232デフォルトの名無しさん
2017/04/19(水) 20:11:22.44ID:/l6NHl5b233デフォルトの名無しさん
2017/04/19(水) 20:23:32.33ID:XuQTPPrh >>227
ちょっと絵に描いてみなよ
ちょっと絵に描いてみなよ
234デフォルトの名無しさん
2017/04/19(水) 20:26:00.72ID:3xQf6WAc 『"このパーツの動作は保障されている"がないとプログラムは工業製品にならない』
ってのが始まりだしね。
ある意味「企業向けオーダーメードプログラムを手作業で人月かけてやるのが
職業プログラマって仕事なんだよっ!!」って請負業者がプログラマ名乗って
コンシュマーに売る工業製品としてのアプリケーションプログラム販売が傍流みたいになってる日本じゃ
「動きゃいい」が蔓延するのもしかたがないこと
ってのが始まりだしね。
ある意味「企業向けオーダーメードプログラムを手作業で人月かけてやるのが
職業プログラマって仕事なんだよっ!!」って請負業者がプログラマ名乗って
コンシュマーに売る工業製品としてのアプリケーションプログラム販売が傍流みたいになってる日本じゃ
「動きゃいい」が蔓延するのもしかたがないこと
235デフォルトの名無しさん
2017/04/19(水) 20:33:37.46ID:lCKuRFX1236デフォルトの名無しさん
2017/04/19(水) 20:34:11.59ID:lCKuRFX1 端末変えたからID変わってるから
237デフォルトの名無しさん
2017/04/19(水) 20:35:16.70ID:lCKuRFX1238デフォルトの名無しさん
2017/04/19(水) 20:36:51.30ID:lCKuRFX1 >>231
構造体に配列の長さと配列をセットで持たせればいいのに
構造体に配列の長さと配列をセットで持たせればいいのに
239デフォルトの名無しさん
2017/04/19(水) 20:37:47.92ID:/l6NHl5b >>237
それは設計不足
それは設計不足
240デフォルトの名無しさん
2017/04/19(水) 20:41:15.47ID:lCKuRFX1241デフォルトの名無しさん
2017/04/19(水) 20:41:33.40ID:oz+MR2rn まぁまぁ ロジックの中が見えてバグがどこで発生しているかもすぐに分かる純粋関数が最強ってことで
242デフォルトの名無しさん
2017/04/19(水) 20:42:40.87ID:lCKuRFX1 カプセル・スリー・セカンド
243デフォルトの名無しさん
2017/04/19(水) 20:44:01.82ID:/l6NHl5b244デフォルトの名無しさん
2017/04/19(水) 20:46:48.18ID:lCKuRFX1 >>243
速度向上ならわかるけど
速度向上ならわかるけど
245デフォルトの名無しさん
2017/04/19(水) 20:49:45.97ID:lCKuRFX1246デフォルトの名無しさん
2017/04/19(水) 20:58:24.07ID:oz+MR2rn247デフォルトの名無しさん
2017/04/19(水) 21:02:34.85ID:lCKuRFX1248デフォルトの名無しさん
2017/04/19(水) 21:08:35.02ID:d/SqmCf2 ちょっとは人の話きけりょ
249デフォルトの名無しさん
2017/04/19(水) 21:10:34.01ID:oz+MR2rn カプセル化してないオブジェクト指向のメンバーなんて
読みにくいグローバル変数みたいなもんじゃない?
読みにくいグローバル変数みたいなもんじゃない?
250デフォルトの名無しさん
2017/04/19(水) 21:18:19.43ID:lCKuRFX1 >>248
聞く、どうぞお話どうぞ
聞く、どうぞお話どうぞ
251デフォルトの名無しさん
2017/04/19(水) 21:20:38.66ID:lCKuRFX1 >>249
グローバル変数とは全然違う
フィールドはオブジェクトに属しています
オブジェクトがなければありません
オブジェクトを作って初めて使うことができます
オブジェクトのライフサイクルと運命をともにするからこそ
オブジェクト指向なんです
finalをつけるのがデフォ
グローバル変数とは全然違う
フィールドはオブジェクトに属しています
オブジェクトがなければありません
オブジェクトを作って初めて使うことができます
オブジェクトのライフサイクルと運命をともにするからこそ
オブジェクト指向なんです
finalをつけるのがデフォ
252デフォルトの名無しさん
2017/04/19(水) 21:41:01.53ID:/l6NHl5b253デフォルトの名無しさん
2017/04/19(水) 21:56:25.91ID:lCKuRFX1 >>252
俺が俺の思いでやるのは当たり前のことだと思うんだよ
雨が降ったら傘をさせばいいと言ってるようなもの
当たり前じゃん?いう意味なくない?
プールで泳ぐときは服を脱げばいいみたいな
出かけるときは靴を履けばいいみたいな
価値観の違いにこだわってるのはそっちのほうなんじゃないかなって思いました
俺が俺の思いでやるのは当たり前のことだと思うんだよ
雨が降ったら傘をさせばいいと言ってるようなもの
当たり前じゃん?いう意味なくない?
プールで泳ぐときは服を脱げばいいみたいな
出かけるときは靴を履けばいいみたいな
価値観の違いにこだわってるのはそっちのほうなんじゃないかなって思いました
254デフォルトの名無しさん
2017/04/19(水) 21:59:29.16ID:lCKuRFX1 カプセル化しないオブジェクト指向がモダンで優れた設計っていうのは
>>252と俺の共通認識としてあるわけだから、その上で思いを語っていただけたら
>>252と俺の共通認識としてあるわけだから、その上で思いを語っていただけたら
255デフォルトの名無しさん
2017/04/19(水) 22:03:04.69ID:/l6NHl5b >>254
俺はカプセル化推奨だぞ
俺はカプセル化推奨だぞ
256デフォルトの名無しさん
2017/04/19(水) 22:06:05.25ID:lCKuRFX1257デフォルトの名無しさん
2017/04/19(水) 22:07:41.10ID:lCKuRFX1 隠すメリットより公開するメリットの方が莫大だと思わない?
258デフォルトの名無しさん
2017/04/19(水) 22:18:28.62ID:lCKuRFX1 公開するメリット隠すデメリットを考えよう
259デフォルトの名無しさん
2017/04/19(水) 22:22:01.02ID:/l6NHl5b 思わないなぁ
カプセル化って無駄を省いてわかりやすいものにして再利用しやすいよう作ることと思ってるからね
そもそもカプセル化はフィールドだけじゃない
インターフェースを用いて処理を委譲させるように設計してしまえばデータだけじゃなく処理を丸ごと隠蔽できるしオブジェクト間の依存関係も稀薄にできる
カプセル化って無駄を省いてわかりやすいものにして再利用しやすいよう作ることと思ってるからね
そもそもカプセル化はフィールドだけじゃない
インターフェースを用いて処理を委譲させるように設計してしまえばデータだけじゃなく処理を丸ごと隠蔽できるしオブジェクト間の依存関係も稀薄にできる
260デフォルトの名無しさん
2017/04/19(水) 22:26:31.08ID:lCKuRFX1 >>259
なるほどね、それはあるね
なるほどね、それはあるね
261デフォルトの名無しさん
2017/04/19(水) 22:27:13.48ID:lCKuRFX1 カプセル化完全に理解した
262デフォルトの名無しさん
2017/04/19(水) 22:34:52.50ID:/l6NHl5b おめでとう
まぁ俺はまだまだ勉強中だからうらやましいよ
まぁ俺はまだまだ勉強中だからうらやましいよ
263デフォルトの名無しさん
2017/04/19(水) 23:01:17.77ID:KzpInSVx >>256
通りすがりだが、年齢フィールドとか一定の幅に制限したい時に勝手に300歳とか設定されたら困るだろう。
だからprivateにしてメソッドやプロパティで0-120なりの範囲に制限するようにするんじゃないの?
通りすがりだが、年齢フィールドとか一定の幅に制限したい時に勝手に300歳とか設定されたら困るだろう。
だからprivateにしてメソッドやプロパティで0-120なりの範囲に制限するようにするんじゃないの?
264デフォルトの名無しさん
2017/04/19(水) 23:08:00.65ID:qOdNs+TP265デフォルトの名無しさん
2017/04/19(水) 23:10:42.57ID:2dTlCsss >>208
代数的データ型で型を定義できるHaskellはオブジェクト志向言語だった……?
代数的データ型で型を定義できるHaskellはオブジェクト志向言語だった……?
266デフォルトの名無しさん
2017/04/19(水) 23:12:01.85ID:qOdNs+TP >>265
代数的データ型とはなんぞや?
代数的データ型とはなんぞや?
267デフォルトの名無しさん
2017/04/19(水) 23:13:00.35ID:HSKBgTxb 「300歳なんてあるわけないからカチカチに型で数字の範囲を絞ればいいんだよ」
「300歳なんて異常な数字を送らないように送り手が責任を持つべきだ」
「300歳が送られてきても"数字がおかしい"って返事するようにすれば良くね」
どれがいいと思うかで、その人のそもそものスタンスとセンスがわかるな。
「300歳なんて異常な数字を送らないように送り手が責任を持つべきだ」
「300歳が送られてきても"数字がおかしい"って返事するようにすれば良くね」
どれがいいと思うかで、その人のそもそものスタンスとセンスがわかるな。
268デフォルトの名無しさん
2017/04/19(水) 23:16:21.53ID:qOdNs+TP >>267
俺ならチェックせずに文字列のフィールドにそのままセットしちゃうね、純粋オブジェクト指向
俺ならチェックせずに文字列のフィールドにそのままセットしちゃうね、純粋オブジェクト指向
269デフォルトの名無しさん
2017/04/19(水) 23:19:37.80ID:qOdNs+TP type c = a or b
みたいな?
みたいな?
270デフォルトの名無しさん
2017/04/19(水) 23:20:37.20ID:qOdNs+TP これもオブジェクト指向と言ってもいいでしょう!
271デフォルトの名無しさん
2017/04/19(水) 23:21:42.97ID:HSKBgTxb ちなみに最後のがいちばんオブジェクト指向っぽくて
大きな仕様変更に強いゆるさがあると思うけど
カチカチが好きなタイプのプログラマーは"ゆるさ"の部分が
許せないのだろうな。
大きな仕様変更に強いゆるさがあると思うけど
カチカチが好きなタイプのプログラマーは"ゆるさ"の部分が
許せないのだろうな。
272デフォルトの名無しさん
2017/04/19(水) 23:23:56.87ID:KzpInSVx >>264
え、でもそうでもなきゃ、データの外部でデータチェックとかは関数型言語や構造化プログラミング的な発想だけど。
副作用あるのに、その発想は危険過ぎない?
他の誰かがその外部のチェック用クラスを使ってくれる保証は無いよ?
え、でもそうでもなきゃ、データの外部でデータチェックとかは関数型言語や構造化プログラミング的な発想だけど。
副作用あるのに、その発想は危険過ぎない?
他の誰かがその外部のチェック用クラスを使ってくれる保証は無いよ?
273デフォルトの名無しさん
2017/04/19(水) 23:30:11.23ID:qOdNs+TP >>272
必要なら必要になったとき必要な人が自分で作れば良いじゃん、自由と自己責任の精神だよ、ルールで縛られたガチガチのオブジェクトじゃままならぬ事もあるでしょう!
必要なら必要になったとき必要な人が自分で作れば良いじゃん、自由と自己責任の精神だよ、ルールで縛られたガチガチのオブジェクトじゃままならぬ事もあるでしょう!
274デフォルトの名無しさん
2017/04/19(水) 23:33:14.31ID:KzpInSVx >>267
オブジェクトが各々責任を持つとするなら、それぞれのクラスでデータチェック(ダブルチェック)が正解なんだろうね。
じゃないと、その二つのクラスは二つで一つになる。
依存関係が出来てしまう。
違うクラスでも、年齢に関するデータなら受け取れるようにした方がいいんじゃ無いかな。
実際には依存関係呑み込んでどっちかしかチェックしないってのが多そうだが。
オブジェクトが各々責任を持つとするなら、それぞれのクラスでデータチェック(ダブルチェック)が正解なんだろうね。
じゃないと、その二つのクラスは二つで一つになる。
依存関係が出来てしまう。
違うクラスでも、年齢に関するデータなら受け取れるようにした方がいいんじゃ無いかな。
実際には依存関係呑み込んでどっちかしかチェックしないってのが多そうだが。
275デフォルトの名無しさん
2017/04/19(水) 23:34:21.76ID:HSKBgTxb "誰がその数値に責任を持ってるか"っしょ。
それを明確にできてればそこを修正すればいいけれど
「私は知らない」「私は受け付けない」「私の責任ではない」って
例外の責任が見えないと責任者探しから始めなくちゃいけなくて
後から来たプログラマが死ぬ。
それを明確にできてればそこを修正すればいいけれど
「私は知らない」「私は受け付けない」「私の責任ではない」って
例外の責任が見えないと責任者探しから始めなくちゃいけなくて
後から来たプログラマが死ぬ。
276デフォルトの名無しさん
2017/04/19(水) 23:37:47.94ID:KzpInSVx 。。。オブジェクト指向は事なかれ文化の日本と相性悪いんじゃ無いかと思えてくる文言ダネ^^;
277デフォルトの名無しさん
2017/04/19(水) 23:39:15.89ID:qOdNs+TP テストすれば良いじゃん
278デフォルトの名無しさん
2017/04/19(水) 23:41:15.55ID:qOdNs+TP ちゃんとオブジェクトが連携できてるかなって
そうだよ僕たちには結合テストがあるじゃないか
そうだよ僕たちには結合テストがあるじゃないか
279デフォルトの名無しさん
2017/04/19(水) 23:46:37.27ID:qOdNs+TP 値を変換するコンバータクラスと値をチェックするバリデータクラスがあれば良いじゃないか
責務の分離だよ
責務の分離だよ
280デフォルトの名無しさん
2017/04/19(水) 23:48:34.03ID:qOdNs+TP データ保持するクラスがチェックまでやるのは複雑すぎるよ、素直じゃない
281デフォルトの名無しさん
2017/04/19(水) 23:51:12.30ID:qOdNs+TP オブジェクトも大事だがコラボレーションも大事
282デフォルトの名無しさん
2017/04/19(水) 23:52:23.70ID:zPBwEPLo 連投せずにまずは落ち着くのが大事
283デフォルトの名無しさん
2017/04/19(水) 23:57:15.78ID:/l6NHl5b 目的の動きを満たせばだいたい正解なんだから熱くなるなよ
自分の意見を押し通したいのはわからんでもないがな
自分の意見を押し通したいのはわからんでもないがな
284デフォルトの名無しさん
2017/04/20(木) 00:29:25.65ID:jJkbXdni 208 デフォルトの名無しさん[sage] 2017/04/19(水) 12:20:37.70 ID:rIlDsUIc
継承もカプセル化もオブジェクト指向には必要ない
クラスを作る、つまり型を定義する事こそがオブジェクト指向
265 デフォルトの名無しさん[sage] 2017/04/19(水) 23:10:42.57 ID:2dTlCsss
>>208
代数的データ型で型を定義できるHaskellはオブジェクト志向言語だった……?
266 デフォルトの名無しさん[sage] 2017/04/19(水) 23:12:01.85 ID:qOdNs+TP
>>265
代数的データ型とはなんぞや?
269 デフォルトの名無しさん[sage] 2017/04/19(水) 23:19:37.80 ID:qOdNs+TP
type c = a or b
みたいな?
270 デフォルトの名無しさん[sage] 2017/04/19(水) 23:20:37.20 ID:qOdNs+TP
これもオブジェクト指向と言ってもいいでしょう!
こんなん草生える
継承もカプセル化もオブジェクト指向には必要ない
クラスを作る、つまり型を定義する事こそがオブジェクト指向
265 デフォルトの名無しさん[sage] 2017/04/19(水) 23:10:42.57 ID:2dTlCsss
>>208
代数的データ型で型を定義できるHaskellはオブジェクト志向言語だった……?
266 デフォルトの名無しさん[sage] 2017/04/19(水) 23:12:01.85 ID:qOdNs+TP
>>265
代数的データ型とはなんぞや?
269 デフォルトの名無しさん[sage] 2017/04/19(水) 23:19:37.80 ID:qOdNs+TP
type c = a or b
みたいな?
270 デフォルトの名無しさん[sage] 2017/04/19(水) 23:20:37.20 ID:qOdNs+TP
これもオブジェクト指向と言ってもいいでしょう!
こんなん草生える
285デフォルトの名無しさん
2017/04/20(木) 07:19:48.83ID:JH3XDWGN チェックも色々とデータが必要なとき多いしな
286デフォルトの名無しさん
2017/04/20(木) 11:36:45.75ID:vlFc/PD3 >>216
> ocpは耄碌したメイヤおじさんの考えだろ
> オブジェクト指向がブラッシュアップされる前の
> 無駄の塊だった頃の話だ
そうでもないけどね。
https://ja.wikipedia.org/wiki/%E9%96%8B%E6%94%BE/%E9%96%89%E9%8E%96%E5%8E%9F%E5%89%87
今でも、OOPの五大原則のひとつとしてあげられるのが普通。
> 最新のオブジェクト指向では継承もカプセル化も
> 害悪でしかないことがわかってる
そうなんだ、それは知らなかったよ。
> ocpは耄碌したメイヤおじさんの考えだろ
> オブジェクト指向がブラッシュアップされる前の
> 無駄の塊だった頃の話だ
そうでもないけどね。
https://ja.wikipedia.org/wiki/%E9%96%8B%E6%94%BE/%E9%96%89%E9%8E%96%E5%8E%9F%E5%89%87
今でも、OOPの五大原則のひとつとしてあげられるのが普通。
> 最新のオブジェクト指向では継承もカプセル化も
> 害悪でしかないことがわかってる
そうなんだ、それは知らなかったよ。
287デフォルトの名無しさん
2017/04/20(木) 14:18:44.61ID:Wfe8Hvf2 継承は特定の親に縛られすぎるのであまりよくないね。ってなってるが
カプセル化はむしろ危険な直接アクセスを防ぐ意味で常識になってる気が。
カプセル化はむしろ危険な直接アクセスを防ぐ意味で常識になってる気が。
288デフォルトの名無しさん
2017/04/20(木) 20:00:36.90ID:OWrdGWgc やっぱりインターフェースこそオブジェクト指向だよな
289デフォルトの名無しさん
2017/04/20(木) 20:17:41.83ID:JH3XDWGN290デフォルトの名無しさん
2017/04/20(木) 20:22:03.18ID:jeWo4Dft それもうわざわざクラス使わずに構造体使っちゃいなよ
291デフォルトの名無しさん
2017/04/20(木) 20:29:03.08ID:nHxDShTL 悪い依存関係はそのコードの利用者にコピベプログラムを強いる
これ経験則な
これ経験則な
292デフォルトの名無しさん
2017/04/20(木) 20:37:59.47ID:x1mUV01b 汎用性ならインターフェースと抽象クラスじゃねーの?
293デフォルトの名無しさん
2017/04/20(木) 21:21:03.65ID:1ly+xIep >>286
> 最新のオブジェクト指向では継承もカプセル化も
> 害悪でしかないことがわかってる
まーたくだらない嘘をつく
すぐにバレるのわかってるだろw
害悪でしかないならば、lintなどのツールで使うなって警告が出るはずだ。
そういったlintツールがない(継承やカプセル化を使った時にエラーにする方法がない)
もとから、害悪でしかないっていうのは完全に間違いだ。
反論があるならどうぞ
> 最新のオブジェクト指向では継承もカプセル化も
> 害悪でしかないことがわかってる
まーたくだらない嘘をつく
すぐにバレるのわかってるだろw
害悪でしかないならば、lintなどのツールで使うなって警告が出るはずだ。
そういったlintツールがない(継承やカプセル化を使った時にエラーにする方法がない)
もとから、害悪でしかないっていうのは完全に間違いだ。
反論があるならどうぞ
294デフォルトの名無しさん
2017/04/20(木) 21:40:16.04ID:NBs+Bll8295デフォルトの名無しさん
2017/04/20(木) 21:44:56.84ID:1ly+xIep 結局、privateっていうのは、
この変数は外部から直接触ることを想定していません。
決められた値以外を入れた時の保証はしませんし、
将来の変更で互換性がない形に変更する必要がありますので
参照しないでください
とコメントで書くわかりに、コンピュータでも理解できる
言語で書くってだけの話なんだよね。
この変数は外部から直接触ることを想定していません。
決められた値以外を入れた時の保証はしませんし、
将来の変更で互換性がない形に変更する必要がありますので
参照しないでください
とコメントで書くわかりに、コンピュータでも理解できる
言語で書くってだけの話なんだよね。
296デフォルトの名無しさん
2017/04/20(木) 21:46:00.98ID:1ly+xIep あ、もちろんprivateを使ったほうが良いって話だよ。
コメントで長々書いても読まないし、
ソースを見ないかもしれない。
そういう時にコンピュータでも理解できる言語で書いていれば
コンパイル時にしっかりチェックしてくれる。間違いがない。
コメントで長々書いても読まないし、
ソースを見ないかもしれない。
そういう時にコンピュータでも理解できる言語で書いていれば
コンパイル時にしっかりチェックしてくれる。間違いがない。
297デフォルトの名無しさん
2017/04/20(木) 21:47:30.56ID:JH3XDWGN >>294
クラスなんて使わなければいいのでは?
クラスなんて使わなければいいのでは?
298デフォルトの名無しさん
2017/04/20(木) 21:53:58.83ID:Rk6y34sG >>293
帰納的な推理は往々にして間違うものなんだよ
帰納的な推理は往々にして間違うものなんだよ
299デフォルトの名無しさん
2017/04/20(木) 21:55:36.70ID:1ly+xIep >298
ちょっと邪魔しないで、
反論が出てくるかどうか待っている所だからw
ちょっと邪魔しないで、
反論が出てくるかどうか待っている所だからw
300デフォルトの名無しさん
2017/04/20(木) 21:56:45.24ID:Rk6y34sG マンコが本当にあるなら俺のチンコが純粋であることの説明がつかないみたいな
301デフォルトの名無しさん
2017/04/20(木) 21:57:23.53ID:x1mUV01b302デフォルトの名無しさん
2017/04/20(木) 21:58:02.87ID:Rk6y34sG 純粋チンコ型論理
303デフォルトの名無しさん
2017/04/20(木) 22:03:33.81ID:Rk6y34sG304デフォルトの名無しさん
2017/04/20(木) 22:07:49.44ID:OWrdGWgc カプセル化は正しい方向性だというのは賛成だが
lintで警告が出ないからという権威主義的な根拠はどうなのか
lintで警告が出ないからという権威主義的な根拠はどうなのか
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「おこめ券は米以外の食品も買える。効果的な活用を」 地元で農水相 [山形県] [少考さん★]
- 【速報】「女芸人No.1決定戦 THE W」9代目女王にニッチェ! 7年ぶり3度目で悲願の優勝 [牛丼★]
- 【芸能】『女芸人No.1決定戦THE W』 粗品が最後にバッサリ「優勝賞金1000万円にしてはレベル低い大会」 [冬月記者★]
- 【🐻ニャー】京都府向日市の「クマ目撃情報」は見間違いか 市が映像確認「ネコに似ていた」 [nita★]
- 今年の流行語大賞 『働いて働いて働いてまいります』が受賞で不快感… 過労自殺の遺族らが会見「家族にむち打つような行為だ」 [冬月記者★]
- 【東京】「家族で話題にして」 “世田谷一家殺害から25年 警視庁が呼びかけ [煮卵★]
