カプセル化(英語: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:ifygL6bT759デフォルトの名無しさん
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:JHQMnpCL845デフォルトの名無しさん
2018/10/16(火) 19:47:46.46ID:JHQMnpCL dateクラスに持たせるべきではないというのなら
年齢計算クラスに持たせればいいだけだな
年齢計算クラスに持たせればいいだけだな
846デフォルトの名無しさん
2018/10/16(火) 19:47:59.81ID:GbK/byr7 >>841
すまん、ならdateクラスは撤回する
国にも依るとなると尚更personにも持たせたくないな
単にグローバル関数にするか、いっそそれ用のクラスツリーをでっち上げて後々多態できるようにするか、かなあ
すまん、ならdateクラスは撤回する
国にも依るとなると尚更personにも持たせたくないな
単にグローバル関数にするか、いっそそれ用のクラスツリーをでっち上げて後々多態できるようにするか、かなあ
847デフォルトの名無しさん
2018/10/16(火) 19:48:53.47ID:tUmXldvA >>843
じーちゃん132歳とか出るパターンじゃね?
じーちゃん132歳とか出るパターンじゃね?
848デフォルトの名無しさん
2018/10/16(火) 19:49:01.40ID:JHQMnpCL 国によって年齢計算のアルゴリズムを変えたいというのなら
ストラテジーパターンの出番だなw
ストラテジーパターンの出番だなw
849デフォルトの名無しさん
2018/10/16(火) 19:54:14.32ID:nQomBRvE みんな賢いねぇ
850デフォルトの名無しさん
2018/10/16(火) 20:36:04.05ID:83dvK2wh 俺やったらageプロパティやageオブジェクト作るんじゃなくて
ageクラス作ってpersonのデリゲートメソッドにageクラスオブジェクト返すものを作る。これで年齢とはそもそもなんぞや定義はの面倒な過程の話にも対応出来る
だが書く途中でゲッターですませやとキレだすと思う
ageクラス作ってpersonのデリゲートメソッドにageクラスオブジェクト返すものを作る。これで年齢とはそもそもなんぞや定義はの面倒な過程の話にも対応出来る
だが書く途中でゲッターですませやとキレだすと思う
851デフォルトの名無しさん
2018/10/16(火) 20:39:51.39ID:+sj1AQoJ 普通に考えたら person と基準日を表すオブジェクトから年齢を返す関数を作るってことになると思うんだが。
852デフォルトの名無しさん
2018/10/16(火) 20:42:25.71ID:H029zngb >>850
定義もわからんもの作んなカスwwww
定義もわからんもの作んなカスwwww
853デフォルトの名無しさん
2018/10/16(火) 21:14:56.44ID:83dvK2wh854デフォルトの名無しさん
2018/10/16(火) 22:05:40.03ID:t+SGPyRj もうメンバー変数とメンバー関数が混在するクラスは作るな
関数しかないinterfaceで十分
関数が一つしかないならlambdaでいい
関数しかないinterfaceで十分
関数が一つしかないならlambdaでいい
855デフォルトの名無しさん
2018/10/16(火) 22:35:26.96ID:uJDDS3c2 それ、区別する必要あるの?
856デフォルトの名無しさん
2018/10/16(火) 22:42:29.73ID:H029zngb 正直必要かどうかはわからない
ただおまえが欲しい
だめか?それだけじゃ?
ただおまえが欲しい
だめか?それだけじゃ?
857デフォルトの名無しさん
2018/10/16(火) 22:45:36.90ID:VMcjBADQ その低学歴知恵遅れが作ったメソッドは
うるう年考慮してなさそうで変なバグが入ってそうだわ
2000年10月20日生まれなら
普通にintで
(20181016-20001020)/1000
でしまいだからな
うるう年考慮してなさそうで変なバグが入ってそうだわ
2000年10月20日生まれなら
普通にintで
(20181016-20001020)/1000
でしまいだからな
858デフォルトの名無しさん
2018/10/16(火) 22:48:30.57ID:VMcjBADQ そもそも常識的に
特殊なケースを除いて日付の引き算で
経過年数がかえってくるという発想はないからな
経過日数はあったとしてもな
特殊なケースを除いて日付の引き算で
経過年数がかえってくるという発想はないからな
経過日数はあったとしてもな
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市内閣の若い世代の支持率は92.4% FNN世論調査 [♪♪♪★]
- 高市内閣の若い世代の支持率は92.4% FNN世論調査★2 [♪♪♪★]
- 【サッカー】日本代表の南野拓実は左膝前十字靱帯断裂の重傷 全治は明らかにされず フランス杯で負傷 所属先のモナコが発表 [久太郎★]
- H3ロケット8号機打ち上げ失敗、衛星軌道投入できず ★7 [少考さん★]
- ゼレンスキー氏「高市総理に感謝」 9000億円超追加支援に 「国際秩序に貢献」 (動画あり) [ごまカンパチ★]
- 【MLB】村上宗隆の『小型契約』は吉田正尚の影響か 市場が思いのほか停滞 「NPB打者に懐疑的。吉田が高すぎた」 [冬月記者★]
- 🏡
- 茶ぁしばこうやぁ···( ¨̮ )︎︎𖠚ᐝ12
- 【高市悲報】超有名YouTuber、「米山隆一が逮捕される」というデマ動画が20万回再生、無事訴えられる🥹 [931948549]
- 味噌ルーメンなんか誰が食うんだ
- やっぱ運動してるやつはフェロモン沢山出るんかね
- 嫌儲の核保有反対派ってなんであんなに馬鹿みたいなやつしかいないの? [848333321]
