カプセル化(英語:encapsulation)とは、オブジェクト指向を構成する概念の一つで、
オブジェクト内部のデータを隠蔽したり(データ隠蔽)、オブジェクトの振る舞いを隠蔽したり、
オブジェクトの実際の型を隠蔽したりすることをいう。
偏差値の低い学校向けの情報処理系教科書において「大変すばらしいものであり絶対に使うように」と大体的に宣伝された。
一方、カリフォルニア大学バークレー校の有識者を中心としたインターネットを作った人たちは「階層化の有害性」として
「絶対に使うな」としている。大雑把にいうと、その時は良くても、将来的な改修の際に隠蔽されたデータに
アクセスできないと解決できない問題が出てきて、結果的にデスマーチに陥るというのである。
オブジェクト指向の発案者であるアラン・ケイもコーディング規約(頭文字にアンダースコアを付けるなどの命名規則)で
縛る程度にすることを推奨しており、アラン・ケイが関わったオブジェクト指向プログラミング言語にはどれも「private」
という概念はない。
https://monobook.org/wiki/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96
探検
オブジェクト指向ってクソじゃね?
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2018/08/24(金) 13:32:09.36ID:ifygL6bT745デフォルトの名無しさん
2018/10/10(水) 19:28:47.64ID:AZXT33MT ママ役は薄幸そうな石田ゆり子かな
異論は認める
異論は認める
746デフォルトの名無しさん
2018/10/10(水) 19:29:51.69ID:AZXT33MT すまん、誤爆だ
747デフォルトの名無しさん
2018/10/10(水) 20:28:30.09ID:DTc0bT+8748デフォルトの名無しさん
2018/10/10(水) 20:31:47.32ID:1d6HAJSZ 最近は中抜きはまだまともな行為だと思えてきた。
バカがクソみたいな意見押し通してくるよりマシだ。
そういう意味でベイシックインカム賛成。
バカがクソみたいな意見押し通してくるよりマシだ。
そういう意味でベイシックインカム賛成。
749デフォルトの名無しさん
2018/10/10(水) 20:32:00.42ID:az2ldVPt >>747
結局、中抜きで困るからっていうのが本当の理由なのね(笑)
結局、中抜きで困るからっていうのが本当の理由なのね(笑)
750デフォルトの名無しさん
2018/10/10(水) 21:57:06.99ID:YM9RoEIA >>740
え?グローバル変数使わなければ戻り値か引数が全てだけど?
え?グローバル変数使わなければ戻り値か引数が全てだけど?
751デフォルトの名無しさん
2018/10/10(水) 22:09:31.63ID:crjMMeGj >>750
つ[クロージャ]
つ[クロージャ]
752デフォルトの名無しさん
2018/10/11(木) 06:25:53.98ID:o+Pj5MkJ 有識者、燃料投下ヨロ
くだらなくてつまんない
くだらなくてつまんない
753デフォルトの名無しさん
2018/10/11(木) 17:52:18.63ID:lqVwZR/7 んじゃクロージャ出たから
オブジェクト指向で末端の人、要は上の誰かが作った仕組みやクラス使って自分はそこからオブジェクト弄るだけの人は可能な限りクロージャ使いまくった方がと思うんだよな
よく委譲処理でこのふたつどちらか選ぶ事あると思うんだが末端なら即クロージャ
オブジェクト指向で末端の人、要は上の誰かが作った仕組みやクラス使って自分はそこからオブジェクト弄るだけの人は可能な限りクロージャ使いまくった方がと思うんだよな
よく委譲処理でこのふたつどちらか選ぶ事あると思うんだが末端なら即クロージャ
754デフォルトの名無しさん
2018/10/11(木) 19:53:44.01ID:hrM+9Jlq >>714
仕事は範囲が限られているからね
その仕事でやらなければならない範囲だけ出来れば
後は何が出来ようが出来まいが関係なくなるからね
一言で言えば視野が狭い
横文字を多用する人は狭い世界で通じてそれでokになっちゃってる
多種ではないし世界が兎に角狭い
実際ゲームなんかでは敵クラスを作って敵が増えるたびにオブジェクトを生成する
ってやると感覚的に凄く簡単
仕事は範囲が限られているからね
その仕事でやらなければならない範囲だけ出来れば
後は何が出来ようが出来まいが関係なくなるからね
一言で言えば視野が狭い
横文字を多用する人は狭い世界で通じてそれでokになっちゃってる
多種ではないし世界が兎に角狭い
実際ゲームなんかでは敵クラスを作って敵が増えるたびにオブジェクトを生成する
ってやると感覚的に凄く簡単
755デフォルトの名無しさん
2018/10/11(木) 20:31:48.13ID:m9vsKwrk756デフォルトの名無しさん
2018/10/11(木) 20:34:12.11ID:U1kKB/4M 逆でしょ?説明されれば終わりなのがいやだから
答えが出てるのに、同じことをくり返し聞く
答えが出てるのに、同じことをくり返し聞く
757デフォルトの名無しさん
2018/10/11(木) 20:38:52.62ID:m9vsKwrk758デフォルトの名無しさん
2018/10/11(木) 21:05:36.68ID:o+Pj5MkJ 犬がワン、猫がニャン
→なにそれ美味しいの?
大規模じゃないとメリット説明しにくいよ
→説明できないって、大規模なプログラムを経験して体で覚えろと?
要するに、簡単には説明できないよ
→だったら学習コストとの天秤では?
俺の中ではこんな感じ
→なにそれ美味しいの?
大規模じゃないとメリット説明しにくいよ
→説明できないって、大規模なプログラムを経験して体で覚えろと?
要するに、簡単には説明できないよ
→だったら学習コストとの天秤では?
俺の中ではこんな感じ
759デフォルトの名無しさん
2018/10/11(木) 21:06:47.80ID:U1kKB/4M 品質向上だし工数削減にもなる
馬鹿はそこでなぜか品質向上と工数削減のために
追加作業が増えるとダメだと話を聞かない
馬鹿はそこでなぜか品質向上と工数削減のために
追加作業が増えるとダメだと話を聞かない
760デフォルトの名無しさん
2018/10/11(木) 21:07:43.81ID:o+Pj5MkJ ちな俺、初心者プログラマだけど宮廷文系
761デフォルトの名無しさん
2018/10/11(木) 21:48:27.62ID:29n02hV2 いわゆる土方候補生か
762デフォルトの名無しさん
2018/10/11(木) 22:35:19.32ID:FTrPBrPb >>753
関数ポインタと汎用のvoidポインタ渡すインターフェイスより明らかに良いとは思うけど、
ガベコレない言語では上手くいかんだろ。
その場合は継承させるしかないっていうc++の選択は間違いじゃない。
関数ポインタと汎用のvoidポインタ渡すインターフェイスより明らかに良いとは思うけど、
ガベコレない言語では上手くいかんだろ。
その場合は継承させるしかないっていうc++の選択は間違いじゃない。
763デフォルトの名無しさん
2018/10/12(金) 00:40:23.27ID:U1NbXGxJ >>762
そういう欠点解消するため、
結構前に拡張されたのに何で勉強しないのかねOOP厨はホントにもう
https://cpprefjp.github.io/lang/cpp11/lambda_expressions.html
そういう欠点解消するため、
結構前に拡張されたのに何で勉強しないのかねOOP厨はホントにもう
https://cpprefjp.github.io/lang/cpp11/lambda_expressions.html
764デフォルトの名無しさん
2018/10/12(金) 00:47:17.48ID:U1NbXGxJ オレぐらいのレベルでないと
オブジェクト指向は使いこなせない
オブジェクト指向は使いこなせない
765デフォルトの名無しさん
2018/10/12(金) 00:47:48.97ID:U1NbXGxJ だいたいわかる
低学歴知恵遅れが
ムダにオブジェクト指向あげしてる
低学歴知恵遅れが
ムダにオブジェクト指向あげしてる
766デフォルトの名無しさん
2018/10/12(金) 00:48:51.77ID:mmIXjKhu メリットの挙げられない技術を採用するな
767デフォルトの名無しさん
2018/10/12(金) 07:03:34.63ID:ogDn0rIL768デフォルトの名無しさん
2018/10/12(金) 08:23:50.28ID:8+F5vpV5 型の問題と寿命の問題を分離しない
OSとGUIを分離しない
フルスタックな環境を作る密結合指向って感じ
OSとGUIを分離しない
フルスタックな環境を作る密結合指向って感じ
769デフォルトの名無しさん
2018/10/12(金) 10:20:48.35ID:4mK9L0RW >>768
それただの設計の問題じゃね?
それただの設計の問題じゃね?
770デフォルトの名無しさん
2018/10/12(金) 11:04:22.00ID:8+F5vpV5771デフォルトの名無しさん
2018/10/12(金) 11:12:44.85ID:4mK9L0RW772デフォルトの名無しさん
2018/10/12(金) 17:19:28.65ID:5jm0P0/q オブジェクト指向信者もDI信者も同じ臭いがするね
【Java】DIコンテナって本当に便利か?
http://mevius.5ch.net/test/read.cgi/tech/1219242206/
次は何を担ぐのやら
外国で流行って育っていくのだから、それなりのメリットはあるんだろうけど、なぜか仕事では恩恵にあずかったことはない
【Java】DIコンテナって本当に便利か?
http://mevius.5ch.net/test/read.cgi/tech/1219242206/
次は何を担ぐのやら
外国で流行って育っていくのだから、それなりのメリットはあるんだろうけど、なぜか仕事では恩恵にあずかったことはない
773デフォルトの名無しさん
2018/10/12(金) 20:33:03.38ID:4mK9L0RW 設計のセンスの無い奴はどんな流行が来たって糞な設計しか出来ないんだよなぁ
センスがある奴はなんとなくどんな流行のスタイルでもこなして来るからなぁ
センスがある奴はなんとなくどんな流行のスタイルでもこなして来るからなぁ
774デフォルトの名無しさん
2018/10/12(金) 20:41:34.47ID:CecLyO81 どーでもいーけどコーディングの事設計てゆーのいーかげん恥ずかしくね?w
775デフォルトの名無しさん
2018/10/12(金) 20:45:43.93ID:4mK9L0RW は?
設計はコーディングじゃねーよw
四角い箱描いて矢印や電線で繋げて遊ぶ奴だぞ。
設計はコーディングじゃねーよw
四角い箱描いて矢印や電線で繋げて遊ぶ奴だぞ。
776デフォルトの名無しさん
2018/10/12(金) 20:45:57.27ID:SyXP90mj ある一定以下に対して理解できるような教範が出てこない
だから一部の人しか使えないようになってる
結局は出来る人の間で持て囃されるだけになってしまう
この何か新しいやり方を創造するのと一般に使えるようにする
というのは本来両輪なんだけど
普通以下の人達が使えるようになる教範を作る
というのはかなり難しい上に
それをやる人には余りメリットがないから
なかなか出てこない
だから
オブジェクト指向プログラミングにしても
関数型プログラミングにしてもその他の技術にしても
広く(普通程度以下)使われるのは難しいし
このスレのタイトルみたいな感想を持つしかなくなる
後は自分が出来るけど他の人が出来ないままのほうが出来る人には得だから妨害する
みたいなのが居るくらいだろうかねぇ
だから一部の人しか使えないようになってる
結局は出来る人の間で持て囃されるだけになってしまう
この何か新しいやり方を創造するのと一般に使えるようにする
というのは本来両輪なんだけど
普通以下の人達が使えるようになる教範を作る
というのはかなり難しい上に
それをやる人には余りメリットがないから
なかなか出てこない
だから
オブジェクト指向プログラミングにしても
関数型プログラミングにしてもその他の技術にしても
広く(普通程度以下)使われるのは難しいし
このスレのタイトルみたいな感想を持つしかなくなる
後は自分が出来るけど他の人が出来ないままのほうが出来る人には得だから妨害する
みたいなのが居るくらいだろうかねぇ
777デフォルトの名無しさん
2018/10/12(金) 20:48:39.65ID:4mK9L0RW あー電線繋げては遊ばないわ、危ないしw
点線の間違いだわ。
点線の間違いだわ。
778デフォルトの名無しさん
2018/10/12(金) 21:12:49.59ID:CecLyO81 ガチでわかっとらん奴やったw
779デフォルトの名無しさん
2018/10/12(金) 21:17:29.38ID:mCoAwEvP780デフォルトの名無しさん
2018/10/12(金) 21:21:05.43ID:xVyRtSc0 少なくともこのスレにいるような低学歴知恵遅れのドカタには
オブジェクト指向言語を適切に使いこなせない
オブジェクト指向言語を適切に使いこなせない
781デフォルトの名無しさん
2018/10/12(金) 21:27:17.84ID:d1sPni1g 少なくともこのスレにいるような低学歴知恵遅れのドカタには
オブジェクト指向言語を適切に使いこなせない
オブジェクト指向言語を適切に使いこなせない
782デフォルトの名無しさん
2018/10/12(金) 22:41:19.80ID:F7y/wInK >>772
テストしたことないのかい?
テストしたことないのかい?
783デフォルトの名無しさん
2018/10/12(金) 23:12:30.21ID:xVyRtSc0 日銀短観のDIは便利
池沼あげのDIはtraitsなみにウンコくさい
池沼あげのDIはtraitsなみにウンコくさい
784デフォルトの名無しさん
2018/10/13(土) 10:26:58.14ID:YNebL+WU 今時DIも使いこなせない人材とか組織にとってのリスクでしか無いよ
あっちこっち結合しまくったクソコードを社内リポジトリにばらまくとか悪夢そのものじゃん
あっちこっち結合しまくったクソコードを社内リポジトリにばらまくとか悪夢そのものじゃん
785デフォルトの名無しさん
2018/10/13(土) 10:58:13.65ID:H4Y+M12v DI使っても結合しまくったくそコードはくそのままだ
業務分析の時点でコケて役割分担がぐちゃぐちゃなんだからDI導入したって解決しない
業務分析の時点でコケて役割分担がぐちゃぐちゃなんだからDI導入したって解決しない
786デフォルトの名無しさん
2018/10/13(土) 21:25:17.45ID:YNebL+WU >>785
DIを使わないから業務分析の時点でコケて役割分担がぐちゃぐちゃになるのでは?
設計者にDIを学習させてDIを使う前提で設計させればそのあたりの分担がキレイになるように意識して設計するようになるよ
DIを使わないから業務分析の時点でコケて役割分担がぐちゃぐちゃになるのでは?
設計者にDIを学習させてDIを使う前提で設計させればそのあたりの分担がキレイになるように意識して設計するようになるよ
787デフォルトの名無しさん
2018/10/13(土) 22:13:29.66ID:An0DfPZD >>786
それで成功した例なんてあんの?
それで成功した例なんてあんの?
788デフォルトの名無しさん
2018/10/13(土) 22:15:51.44ID:L3Dj2/gz cのたくさんの構造体にいっぱい変数や関数ポインタもたせて
それ入力にして処理するのと同じ
それ入力にして処理するのと同じ
789デフォルトの名無しさん
2018/10/13(土) 22:29:25.59ID:HA3RUpZg DIはたしかにきれいな設計になるが、めんどくて工数がかかる。
作業者にはYAGNIのほうが優先度高いから勝手に採用できない
だからそういうのはトップエンジニアが最初に管理方針としてきめとくもんだ
末端のプログラマーに責任押し付けるのは酷
作業者にはYAGNIのほうが優先度高いから勝手に採用できない
だからそういうのはトップエンジニアが最初に管理方針としてきめとくもんだ
末端のプログラマーに責任押し付けるのは酷
790デフォルトの名無しさん
2018/10/13(土) 22:38:19.49ID:HA3RUpZg 今のDIはめんどすぎる
既存コードをいじらないで中身をすげかえる
もっと楽な方法はないものか
既存コードをいじらないで中身をすげかえる
もっと楽な方法はないものか
791デフォルトの名無しさん
2018/10/13(土) 22:42:51.86ID:An0DfPZD DIは言語自体に組み込まれるべきもの
高級言語はどんどん高級になるべきだが
ガベコレ搭載あたりで停滞してしまったからね
本来はDIやデザインパターンやユニットテストや
フレームワークまで高級言語の仕様に含めなきゃいけない
高級言語はどんどん高級になるべきだが
ガベコレ搭載あたりで停滞してしまったからね
本来はDIやデザインパターンやユニットテストや
フレームワークまで高級言語の仕様に含めなきゃいけない
792デフォルトの名無しさん
2018/10/13(土) 22:44:08.09ID:L3Dj2/gz インターフェースを決め打ちにしたテンプレート作る間抜けな作りと
大してかわらないからな
大してかわらないからな
793デフォルトの名無しさん
2018/10/13(土) 22:48:54.83ID:c+yfSqJ1 使用者との合意の無いインターフェースほどクソなモンは無い
独りよがりで考えたものは全部クソなので誰にも見られないうちに捨てて欲しい
独りよがりで考えたものは全部クソなので誰にも見られないうちに捨てて欲しい
794デフォルトの名無しさん
2018/10/13(土) 22:54:18.52ID:An0DfPZD 逆に言えば使用者との合意のあるインターフェースは問題ない
ということになってしまう。
ということになってしまう。
795デフォルトの名無しさん
2018/10/13(土) 22:59:41.42ID:c+yfSqJ1 >>794
もちろんそうだろ
もちろんそうだろ
796デフォルトの名無しさん
2018/10/13(土) 23:21:29.03ID:An0DfPZD797デフォルトの名無しさん
2018/10/13(土) 23:38:37.37ID:L3Dj2/gz クソが余計なことをして
余計にクソなコードを生産するサイクルが途絶えることはない
余計にクソなコードを生産するサイクルが途絶えることはない
798デフォルトの名無しさん
2018/10/13(土) 23:45:30.90ID:An0DfPZD SEが余計なことをして
クソコードを量産することになるのは
よくある話だな
クソコードを量産することになるのは
よくある話だな
799デフォルトの名無しさん
2018/10/14(日) 11:01:28.22ID:RzJcTIeH DIを使わないと結合部分に余計なコードが入り乱れて大変なんだよな
800デフォルトの名無しさん
2018/10/14(日) 12:27:39.55ID:mBxOrkWE え?どんなコードが入るの?
ありえないのに
ありえないのに
801デフォルトの名無しさん
2018/10/15(月) 20:24:46.22ID:vo4hBZ/w なあ、おまえのクラス内に公開変数作って、そいつをインクルードして関数呼び出し時にポインター参照で指定するなんてインターフェス、誰が言い出したの?
しかも各関数は自前のその公開変数を直接参照して動いてるし。
こんな中途半端なやり方するなら、最初から隠蔽しちゃってくださいよ。
しかも各関数は自前のその公開変数を直接参照して動いてるし。
こんな中途半端なやり方するなら、最初から隠蔽しちゃってくださいよ。
802デフォルトの名無しさん
2018/10/15(月) 20:30:03.66ID:1WHouwEf ごめん自分のデータクラスを全クラスの共通IFにする自信がなかった
803デフォルトの名無しさん
2018/10/15(月) 21:16:54.08ID:E6pr56BO 私たち日本人の、日本国憲法を改正しましょう。
総ム省の、『憲法改正國民投票法』、でググって
みてください。拡散も含め、お願い致します。
総ム省の、『憲法改正國民投票法』、でググって
みてください。拡散も含め、お願い致します。
804デフォルトの名無しさん
2018/10/16(火) 03:09:47.94ID:ou8fzFot この記事拍手の数すげぇな。まだ伸び続けてる
Goodbye, Object Oriented Programming
https://medium.com/@cscalfani/goodbye-object-oriented-programming-a59cda4c0e53
Goodbye, Object Oriented Programming
https://medium.com/@cscalfani/goodbye-object-oriented-programming-a59cda4c0e53
805デフォルトの名無しさん
2018/10/16(火) 07:54:43.79ID:Z3LiiLXa 誰か和訳してよ
806デフォルトの名無しさん
2018/10/16(火) 07:57:35.98ID:Z3LiiLXa オブジェクト指向を厚く語るヤツは
お勉強いまいちのヤツが多くて信用できないけど、
さらっとオブジェクト指向で書いたようなライブラリを公開してるヤツが
高学歴というわけでもない不思議な業界だよね
お勉強いまいちのヤツが多くて信用できないけど、
さらっとオブジェクト指向で書いたようなライブラリを公開してるヤツが
高学歴というわけでもない不思議な業界だよね
807デフォルトの名無しさん
2018/10/16(火) 08:20:25.22ID:Jp8CUHhN Banana Monkey Jungle Solution
まで読んだ
まで読んだ
808デフォルトの名無しさん
2018/10/16(火) 09:47:48.81ID:hiAtkD1Q Elm最高まで読んだ
809デフォルトの名無しさん
2018/10/16(火) 10:44:44.96ID:KsONw+2K 結局関数プログラミングが良い
って書いてある様に見えるけど
オブジェクト指向に対して何がどう良いのかは書いてないように見える
オブジェクト指向の問題点の指摘自体は有ってるように思えるけど
そもそもそういう使い方をするものじゃない
って気がするなぁ
現実世界とどうたらこうたら
こういう書き方をする人は自分からみてほぼ間違えている様に見える
騙された
って書いて有るけど
オブジェクト指向ってそんなに劇的に何かが壮大に変わるわけじゃないんだけど
その辺を誤解しているかオブジェクト指向を宣伝している奴がそもそも捕らえ違いをしている
そう自分には感じる事が多いなぁ
って書いてある様に見えるけど
オブジェクト指向に対して何がどう良いのかは書いてないように見える
オブジェクト指向の問題点の指摘自体は有ってるように思えるけど
そもそもそういう使い方をするものじゃない
って気がするなぁ
現実世界とどうたらこうたら
こういう書き方をする人は自分からみてほぼ間違えている様に見える
騙された
って書いて有るけど
オブジェクト指向ってそんなに劇的に何かが壮大に変わるわけじゃないんだけど
その辺を誤解しているかオブジェクト指向を宣伝している奴がそもそも捕らえ違いをしている
そう自分には感じる事が多いなぁ
810デフォルトの名無しさん
2018/10/16(火) 10:49:18.08ID:hiAtkD1Q 現実世界とマッピングさせようとしたらそりゃ上手くいかんし
バナナモンキージャングルになるわな
あほくさ
バナナモンキージャングルになるわな
あほくさ
811デフォルトの名無しさん
2018/10/16(火) 11:00:52.85ID:sVO7hlJ7 アクセス修飾子について分かりやすい説明しているサイトない?
privateからゲッター → セッターの理由がわかんないんだよな。
publicとの違いがなんなのか
privateからゲッター → セッターの理由がわかんないんだよな。
publicとの違いがなんなのか
812デフォルトの名無しさん
2018/10/16(火) 11:06:30.91ID:HqnwAz6t813デフォルトの名無しさん
2018/10/16(火) 11:07:25.98ID:HqnwAz6t ゲターもせターもパブリクーにするなら
アクセサーとフィールドの違いはない
アクセサーとフィールドの違いはない
814デフォルトの名無しさん
2018/10/16(火) 11:39:32.23ID:8J+M5yKD あとから処理をフックできるぞ!
815デフォルトの名無しさん
2018/10/16(火) 11:40:12.83ID:Ul6KAhVk setget時にログ出したいときに一括でできるぐらいか?
816デフォルトの名無しさん
2018/10/16(火) 13:06:07.08ID:GbK/byr7 >>811
わかんないなら使わなくていいよ
用もないのにゲッターセッターを用意しろってのは間違って広まった悪いスタイルだ
多態したいとか、書かれてるようにログを取りたいとか、アクセサがあるとインスペクタで値が見えて便利とか
なんか用事がある時だけでいい
わかんないなら使わなくていいよ
用もないのにゲッターセッターを用意しろってのは間違って広まった悪いスタイルだ
多態したいとか、書かれてるようにログを取りたいとか、アクセサがあるとインスペクタで値が見えて便利とか
なんか用事がある時だけでいい
817デフォルトの名無しさん
2018/10/16(火) 13:22:26.52ID:sVO7hlJ7818デフォルトの名無しさん
2018/10/16(火) 14:20:20.47ID:cFNbEHw0 言語仕様で何とでもなるものにいちいちゲッターセッター付けるの無駄じゃね?
819デフォルトの名無しさん
2018/10/16(火) 14:59:03.86ID:8J+M5yKD それがプロパティなわけだが
ゲッターセッターと機能が重複しててほぼシンタックスシュガーで邪魔
ゲッターセッターと機能が重複しててほぼシンタックスシュガーで邪魔
820デフォルトの名無しさん
2018/10/16(火) 15:33:44.68ID:pkWZobMJ 今時まだゲッターセッターなんて無意味なもん書いてる奴いんのか。
821デフォルトの名無しさん
2018/10/16(火) 16:52:45.97ID:nQomBRvE セットなんちゃらって書く場面を考えると
なにかの状態遷移を伴うケースが大抵である
だとしたら、それを具体的に示す関数を書くべきなのでは
初期化が不便だというのもなんか違う
設定するメンバの組み合わせは決めておくべきではないか
それに併せて初期化関数を用意するだけ
なにかの状態遷移を伴うケースが大抵である
だとしたら、それを具体的に示す関数を書くべきなのでは
初期化が不便だというのもなんか違う
設定するメンバの組み合わせは決めておくべきではないか
それに併せて初期化関数を用意するだけ
822デフォルトの名無しさん
2018/10/16(火) 17:08:05.58ID:JHQMnpCL823デフォルトの名無しさん
2018/10/16(火) 17:10:16.39ID:JHQMnpCL824デフォルトの名無しさん
2018/10/16(火) 18:13:44.49ID:AosmVSTK いつもクラスの例にでてくるPersonクラスはNameとAgeを持ってるけどあれ適当だよな
Ageは不変じゃないからいつの時点のAgeなのかもわからん
本来は誕生日を持っておいてAgeが必要なときにいつの時点の年齢が欲しいかを引数で与えて計算すべきなんだよな
Ageは不変じゃないからいつの時点のAgeなのかもわからん
本来は誕生日を持っておいてAgeが必要なときにいつの時点の年齢が欲しいかを引数で与えて計算すべきなんだよな
825デフォルトの名無しさん
2018/10/16(火) 18:57:36.52ID:PnSVhV/K 言われたらそうだなw盲点だった
826デフォルトの名無しさん
2018/10/16(火) 19:03:13.54ID:JHQMnpCL そこででてくるのがプロパティだよ
ageは属性かメソッドかといったら属性だろ?
一見属性にアクセスしているようで、内部では
いろんな処理を行って値を返す。
それがプロパティ
ageは属性かメソッドかといったら属性だろ?
一見属性にアクセスしているようで、内部では
いろんな処理を行って値を返す。
それがプロパティ
827デフォルトの名無しさん
2018/10/16(火) 19:04:22.70ID:JHQMnpCL828デフォルトの名無しさん
2018/10/16(火) 19:12:47.50ID:AosmVSTK829デフォルトの名無しさん
2018/10/16(火) 19:22:26.29ID:AzP++FB2 状態状態ってよく悪者にされるけどOOPの肝はのへんににあると思う
#include <iostream>
struct logger {
std::ostream *out;
logger() : out(0) {}
void p(const char *s) {
if (out) *out << s << std::endl;
}
};
void f(logger &l) {
l.p("foo");
l.p("bar");
}
int main() {
logger g;
f(g);
g.out = &std::cout;
f(g);
g.out = &std::cerr;
f(g);
return 0;
}
ログの有効無効なんかをこうやって切り替えるのって
そんなに悪いこと?
#include <iostream>
struct logger {
std::ostream *out;
logger() : out(0) {}
void p(const char *s) {
if (out) *out << s << std::endl;
}
};
void f(logger &l) {
l.p("foo");
l.p("bar");
}
int main() {
logger g;
f(g);
g.out = &std::cout;
f(g);
g.out = &std::cerr;
f(g);
return 0;
}
ログの有効無効なんかをこうやって切り替えるのって
そんなに悪いこと?
830デフォルトの名無しさん
2018/10/16(火) 19:24:41.24ID:GbK/byr7 Delphiなら配列の構文で引数付きプロパティを扱えたりするが
そんなことするぐらいならpersonからはbirthdayだけ見せて
今何歳かなんて呼び出し側で勝手に計算しやがれって思うわw
そんなことするぐらいならpersonからはbirthdayだけ見せて
今何歳かなんて呼び出し側で勝手に計算しやがれって思うわw
831デフォルトの名無しさん
2018/10/16(火) 19:26:14.38ID:OiVT6sa2 読み取りのプロパティは冪等であるべきじゃないの?
832デフォルトの名無しさん
2018/10/16(火) 19:27:08.86ID:JHQMnpCL Nameも不変じゃないし身長体重性別だって不変じゃない
商品の値段も不変じゃない
不変のものなってまず無いだろう。
つまりは、オブジェクトの状態の過去のスナップショットを
オブジェクト自身に持たせるのが正しい設計かという話
商品の値段も不変じゃない
不変のものなってまず無いだろう。
つまりは、オブジェクトの状態の過去のスナップショットを
オブジェクト自身に持たせるのが正しい設計かという話
833デフォルトの名無しさん
2018/10/16(火) 19:30:01.71ID:GbK/byr7834デフォルトの名無しさん
2018/10/16(火) 19:33:44.42ID:JHQMnpCL835デフォルトの名無しさん
2018/10/16(火) 19:34:54.98ID:AosmVSTK 話がずれてる
本質が理解されてないらしい
本質が理解されてないらしい
836デフォルトの名無しさん
2018/10/16(火) 19:35:57.94ID:JHQMnpCL837デフォルトの名無しさん
2018/10/16(火) 19:37:46.55ID:AosmVSTK 誕生日だけが提供されていたらコードのあちこちで年齢を出すメソッドが別々に書かれるかもしれない
同じ処理が複数で書かれてそれも同じ処理とも限らない
ロジックが散らばるのはよくないからクラスが持つべきではないかと思う
同じ処理が複数で書かれてそれも同じ処理とも限らない
ロジックが散らばるのはよくないからクラスが持つべきではないかと思う
838デフォルトの名無しさん
2018/10/16(火) 19:38:15.60ID:eMqRZshQ 大小比較のアルゴリズム自体を引数で渡したり、
オブジェクト指向っぽくてエレガントに見えはするけど、
一般プログラマには可読性低いなー
と思ったり。
一昔前のオブジェクト指向設計が売りの会社たちは、
オナニー会社として、まるで奮わなかったもんな
やっぱ適正レベルってもんが大事だよね
オブジェクト指向っぽくてエレガントに見えはするけど、
一般プログラマには可読性低いなー
と思ったり。
一昔前のオブジェクト指向設計が売りの会社たちは、
オナニー会社として、まるで奮わなかったもんな
やっぱ適正レベルってもんが大事だよね
839デフォルトの名無しさん
2018/10/16(火) 19:40:14.57ID:GbK/byr7840デフォルトの名無しさん
2018/10/16(火) 19:41:53.17ID:eMqRZshQ C++はベターCとして、文字列いじるときとか楽できればいいんじゃね?
でもmallocとかメモリ管理が面倒だから、C#やJavaに流れるよね
要員確保できるもの
でもmallocとかメモリ管理が面倒だから、C#やJavaに流れるよね
要員確保できるもの
841デフォルトの名無しさん
2018/10/16(火) 19:43:35.70ID:AosmVSTK842デフォルトの名無しさん
2018/10/16(火) 19:43:50.71ID:eMqRZshQ だいたいそういうのは業務共通クラスとしてstaticメソッドてんこ盛りで置いておくよね
843デフォルトの名無しさん
2018/10/16(火) 19:46:28.35ID:JHQMnpCL つーか簡単だろ?
日付クラス。もしくは日付補助クラスに
2つの日付の差を年で返すメソッドを追加する
Personクラスには、誕生日とageプロパティをもたせ
ageプロパティは、誕生日と今日の日付の差を
さっきの年で返すメソッドを呼び出すだけにする
テストは日付クラスのメソッドはそのまま年計算のメソッドのテストを書けばいいし
Personクラスのテストは、単体テストの観点から日付クラスが
外部モジュールになるので年計算のテストは不要(すでにやってる)
年計算のメソッドを期待したとおりの引数で呼び出していることの確認と
返り値をそのまま戻しているかを確認すればいい
特定の年月日の年齢が知りたいなら、誕生日プロパティと特定の日付から
日付クラスの年計算メソッドを呼び出して差を計算するか、
適切な場所があるならそこにメソッドをおけばいい
日付クラス。もしくは日付補助クラスに
2つの日付の差を年で返すメソッドを追加する
Personクラスには、誕生日とageプロパティをもたせ
ageプロパティは、誕生日と今日の日付の差を
さっきの年で返すメソッドを呼び出すだけにする
テストは日付クラスのメソッドはそのまま年計算のメソッドのテストを書けばいいし
Personクラスのテストは、単体テストの観点から日付クラスが
外部モジュールになるので年計算のテストは不要(すでにやってる)
年計算のメソッドを期待したとおりの引数で呼び出していることの確認と
返り値をそのまま戻しているかを確認すればいい
特定の年月日の年齢が知りたいなら、誕生日プロパティと特定の日付から
日付クラスの年計算メソッドを呼び出して差を計算するか、
適切な場所があるならそこにメソッドをおけばいい
844デフォルトの名無しさん
2018/10/16(火) 19:47:01.66ID:JHQMnpCL■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 俳優・広末涼子さんを略式起訴 “時速185キロで車線変更”過失運転傷害の罪 [少考さん★]
- H3ロケット8号機打ち上げ失敗、衛星軌道投入できず ★4 [少考さん★]
- 【徳島】「体調が悪くなったら自己責任」と同意書求める 最長1年2か月期限切れ 生活保護受給者に賞味期限切れ食品を支給 徳島市 [ぐれ★]
- 「女性同士、子ども連れはお断り」居酒屋の張り紙が物議、飲食店の入店拒否はどこまで許される? ★2 [ぐれ★]
- 「DOWNTOWN+」 番組内容紹介のYouTubeチャンネルの再生回数が累計2億回を超え [ひかり★]
- 古市憲寿氏「パンダ、そんなにいてほしいですか?」 阿川佐和子さん「ネットで見ればいいでしょう」 [Anonymous★]
- 【高市カレー】 ボンカレー、値上げ。 税込み1食 275円に。 晋さん、国民的カレーが高級品になったよ…… [485983549]
- 【🎮】PCゲーマー、新作ゲームに1mmも興味ない事が判明・・・ [955862909]
- ニッキー・ミナージュ、保守団体イベントに登壇しトランプを称賛 ヤフコメ民から「アメリカのフィフィ」との称号を得る [377482965]
- 【悲報】長期金利26年ぶり2.1%、元日銀「高市政権による財政悪化が懸念され日本の信用が落ちてる」
- 彼氏へのクリスマスプレゼント一緒に考えてくれ
- 【なにここ】🏡👊😅👊🏡【すごいなこれ‼】
