カプセル化(英語:encapsulation)とは、オブジェクト指向を構成する概念の一つで、
オブジェクト内部のデータを隠蔽したり(データ隠蔽)、オブジェクトの振る舞いを隠蔽したり、
オブジェクトの実際の型を隠蔽したりすることをいう。
偏差値の低い学校向けの情報処理系教科書において「大変すばらしいものであり絶対に使うように」と大体的に宣伝された。
一方、カリフォルニア大学バークレー校の有識者を中心としたインターネットを作った人たちは「階層化の有害性」として
「絶対に使うな」としている。大雑把にいうと、その時は良くても、将来的な改修の際に隠蔽されたデータに
アクセスできないと解決できない問題が出てきて、結果的にデスマーチに陥るというのである。
オブジェクト指向の発案者であるアラン・ケイもコーディング規約(頭文字にアンダースコアを付けるなどの命名規則)で
縛る程度にすることを推奨しており、アラン・ケイが関わったオブジェクト指向プログラミング言語にはどれも「private」
という概念はない。
https://monobook.org/wiki/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96
探検
オブジェクト指向ってクソじゃね?
レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん
2018/08/24(金) 13:32:09.36ID:ifygL6bT883デフォルトの名無しさん
2018/10/17(水) 16:48:54.97ID:DrCNXevb >>882
いやw年齢だとシンプルすぎるかなと思っただけw
いやw年齢だとシンプルすぎるかなと思っただけw
884デフォルトの名無しさん
2018/10/17(水) 16:59:07.49ID:cz0N+1z5885デフォルトの名無しさん
2018/10/17(水) 17:15:22.09ID:K4tsdk4L >>876
まあ、わかってて公平な実装と、それで良いと思ってるけど漏れがある実装は、仕様と不具合と大きく異なるけどね。
>>878
ほんといつも、半角さんがでしゃばった上に間違うからこんな事になる。
でもAgeはオブジェクトのプロパティとしては俺はおかしいと思うよ。
環境によって刻々と変わったり、恣意的に変えられる値は、オブジェクトとオブジェクトの演算で出るべきだと思う。
環境オブジェクトなり、指定時刻オブジェクトなりの、時刻を表すオブジェクトと、Personを組み合わせて、初めてAgeが出るんだし。
Personを含む生年月日があるオブジェクト.ageAt(時刻オブジェクト point)で年齢オブジェクトが出るなら理解できる。
まあ、わかってて公平な実装と、それで良いと思ってるけど漏れがある実装は、仕様と不具合と大きく異なるけどね。
>>878
ほんといつも、半角さんがでしゃばった上に間違うからこんな事になる。
でもAgeはオブジェクトのプロパティとしては俺はおかしいと思うよ。
環境によって刻々と変わったり、恣意的に変えられる値は、オブジェクトとオブジェクトの演算で出るべきだと思う。
環境オブジェクトなり、指定時刻オブジェクトなりの、時刻を表すオブジェクトと、Personを組み合わせて、初めてAgeが出るんだし。
Personを含む生年月日があるオブジェクト.ageAt(時刻オブジェクト point)で年齢オブジェクトが出るなら理解できる。
886デフォルトの名無しさん
2018/10/17(水) 18:34:11.00ID:K4tsdk4L 言い換えると、オブジェクトのプロパティはそのオブジェクトだけで表現可能なものに縛ったほうが良いと思う。
887デフォルトの名無しさん
2018/10/17(水) 18:41:50.33ID:JdG8Y6gT 誕生日はプロパティにしてもよく、年齢は日付けに依存するから関数か
888デフォルトの名無しさん
2018/10/17(水) 18:58:38.46ID:DrCNXevb 特定の日時の年齢が必要になったら
getAgeからgetAgeAt呼べばいいだけやん
言語によっていろいろやり方あるけどね
getAgeAt(Date.Today)しか書かれてないプログラムとかマヌケじゃん
既存クラスにメソッド追加できる言語なら
最終的にはDateにyears_between何ちゃら書く事になりそうだが
getAgeからgetAgeAt呼べばいいだけやん
言語によっていろいろやり方あるけどね
getAgeAt(Date.Today)しか書かれてないプログラムとかマヌケじゃん
既存クラスにメソッド追加できる言語なら
最終的にはDateにyears_between何ちゃら書く事になりそうだが
889デフォルトの名無しさん
2018/10/17(水) 19:05:52.01ID:MwWLHD/k それで言ったらPersonオブジェクトがどういう扱いなのかによってもAgeがプロパティか関数か違いそうだな。
データベース的な一回表示するだけだったら関数でも良いけど、ゲームやSNSのアバター的なのだったら、ステータス表示するたびに計算してたら無駄が多い。
誕生日イベントでもない限り1日くらいは1歳違う程度は許容されるなら、オブジェクト作成時(ログイン時)に計算して結果をAgeに入れるだけとか、誕生日イベント発生時に計算して入れるだけとかした方がよくないか?
モバイルゲームとかなら尚更。
データベース的な一回表示するだけだったら関数でも良いけど、ゲームやSNSのアバター的なのだったら、ステータス表示するたびに計算してたら無駄が多い。
誕生日イベントでもない限り1日くらいは1歳違う程度は許容されるなら、オブジェクト作成時(ログイン時)に計算して結果をAgeに入れるだけとか、誕生日イベント発生時に計算して入れるだけとかした方がよくないか?
モバイルゲームとかなら尚更。
890デフォルトの名無しさん
2018/10/17(水) 19:07:22.09ID:pcmrmHBT お前らQiitaでも喧嘩してんのかよwwwww
891デフォルトの名無しさん
2018/10/17(水) 19:21:58.46ID:QBZICbug くだらねー議論してないで業務エキスパートに年齢の扱いを聞いてこい
それが答えだ
それが答えだ
892デフォルトの名無しさん
2018/10/17(水) 19:41:36.97ID:lTftiJN1 バッチが日付またぐけど開始した日で計算したいとなると「当日」をそういう扱いにするようにプログラム書くんだろうがインターフェースを変更する必要は無さそうだな
893デフォルトの名無しさん
2018/10/17(水) 19:45:33.46ID:e5Vejsh/ プログラミング系の文章は長いのが多いw
Qiitaも無駄に長いし
Qiitaも無駄に長いし
894デフォルトの名無しさん
2018/10/17(水) 19:48:24.97ID:MwWLHD/k そらそうよ。
一体何に細かく指示してると思ってんの。
それに比べれば全然短いわ。
一体何に細かく指示してると思ってんの。
それに比べれば全然短いわ。
895デフォルトの名無しさん
2018/10/17(水) 19:49:12.51ID:PbHb58aB 保守性、生産性なんてどーでもいいみたいだなw
896デフォルトの名無しさん
2018/10/17(水) 20:48:03.60ID:SmhZ3W9+ 保守性がどーでもいいならスマートUI + 振る舞いレスオブジェクト + トランザクションスクリプト + スパゲティクエリで短期的な生産性を上げることができる
保守性と生産性を同時に上げる方法は残念ながらオブジェクト指向しか知らない
保守性と生産性を同時に上げる方法は残念ながらオブジェクト指向しか知らない
897デフォルトの名無しさん
2018/10/17(水) 21:11:18.05ID:MCL000/y >>893
いわゆる職業病だな
いわゆる職業病だな
898デフォルトの名無しさん
2018/10/17(水) 21:15:15.43ID:t+3zMNmx 言語の解説本でもムダに長いからな
ポケットリファレンス程度でいいのに
ポケットリファレンス程度でいいのに
899デフォルトの名無しさん
2018/10/17(水) 21:29:59.95ID:MCL000/y900デフォルトの名無しさん
2018/10/17(水) 22:12:39.18ID:Ny9Q/0jK 低学歴知恵遅れは日付クラスにそんな頭悪いコードを入れると書いてるからな
>>843 ← このとおり
>>843 ← このとおり
901デフォルトの名無しさん
2018/10/17(水) 22:16:19.44ID:Ny9Q/0jK 普通に考えてな
日付クラスにそんな頭悪いコードなんかいれない
低学歴知恵遅れはいろんなもんに利用する日付クラスに
年齢求めるコードをいれると書いてる
低学歴知恵遅れがクラスを設計()すると
こういうバカな作りになるという典型的な例といっていい
この板にいるような低学歴知恵遅れにはやっぱりな
オブジェクト指向なんかムリ
日付クラスにそんな頭悪いコードなんかいれない
低学歴知恵遅れはいろんなもんに利用する日付クラスに
年齢求めるコードをいれると書いてる
低学歴知恵遅れがクラスを設計()すると
こういうバカな作りになるという典型的な例といっていい
この板にいるような低学歴知恵遅れにはやっぱりな
オブジェクト指向なんかムリ
902デフォルトの名無しさん
2018/10/17(水) 22:18:11.61ID:vodxAkHQ >>891
契約時年齢だって
契約時年齢だって
903デフォルトの名無しさん
2018/10/17(水) 22:21:21.35ID:Ny9Q/0jK ただの起算日の違いの問題だからな
計算方法はかわらない
そもそも日付クラス()なんかやるようなもんじゃない
計算方法はかわらない
そもそも日付クラス()なんかやるようなもんじゃない
904デフォルトの名無しさん
2018/10/17(水) 22:26:45.89ID:Ny9Q/0jK ともかくあきれるぐらい頭が悪い
905デフォルトの名無しさん
2018/10/17(水) 22:29:57.57ID:t+3zMNmx906デフォルトの名無しさん
2018/10/17(水) 22:30:36.34ID:MwWLHD/k 確かになー。。。
と言うか、大抵のフレームワークに日付クラスがあるのに、わざわざ改造して年齢計算メソッド付けるって発想が浮かばない。
普通はPersonに付けるだろうし、スマホゲームとかならクライアントに計算させてバッテリー減り過ぎも困るから、場合によっては鯖側に管理クラス作ってそっちに付ける。
と言うか、大抵のフレームワークに日付クラスがあるのに、わざわざ改造して年齢計算メソッド付けるって発想が浮かばない。
普通はPersonに付けるだろうし、スマホゲームとかならクライアントに計算させてバッテリー減り過ぎも困るから、場合によっては鯖側に管理クラス作ってそっちに付ける。
907デフォルトの名無しさん
2018/10/17(水) 22:30:39.23ID:Ny9Q/0jK ホント頭悪いわ
908デフォルトの名無しさん
2018/10/17(水) 22:35:00.27ID:SmhZ3W9+ アタマが悪いと短いレスすら誤解して読んでしまうらしい
ほんとかな?
ほんとかな?
909デフォルトの名無しさん
2018/10/17(水) 22:35:22.24ID:t+3zMNmx >>906
日付クラスに入れるのは日付の計算(もちろんすでに入ってるのならそれを使う)
年齢はPersonクラス、仕様が一致してるなら日付クラスのメソッドを呼ぶだけでいい
日付の計算と年齢の計算は(仮にロジックが一致していたとしても)別物
そういうことを考えるのが抽象化
日付クラスに入れるのは日付の計算(もちろんすでに入ってるのならそれを使う)
年齢はPersonクラス、仕様が一致してるなら日付クラスのメソッドを呼ぶだけでいい
日付の計算と年齢の計算は(仮にロジックが一致していたとしても)別物
そういうことを考えるのが抽象化
910デフォルトの名無しさん
2018/10/17(水) 22:54:19.67ID:MwWLHD/k >>909
入ってるのは今の所見たことないけど、メソッドにする程か?
日付クラス同士の足し算引き算出来るはずで、年数計算って結局ただの引き算やぞ。
別に駄目とは言わんが、Ageメソッド内で「今日の日付−生年月日」するのと、「日付クラス.年数計算(今日の日付,生年月日)」するのと手間は同じ。
むしろ長くなる。
入ってるのは今の所見たことないけど、メソッドにする程か?
日付クラス同士の足し算引き算出来るはずで、年数計算って結局ただの引き算やぞ。
別に駄目とは言わんが、Ageメソッド内で「今日の日付−生年月日」するのと、「日付クラス.年数計算(今日の日付,生年月日)」するのと手間は同じ。
むしろ長くなる。
911デフォルトの名無しさん
2018/10/17(水) 23:03:02.79ID:4yuTjZOF operator - が日付クラス内で定義されてる例なんていっぱいあるでしょ
912デフォルトの名無しさん
2018/10/17(水) 23:05:08.82ID:t+3zMNmx >>910
Personクラスの属性にしていれば、
内部の実装が変わってもインターフェースを
変えなくてすむんだよ。
それにオブジェクト指向の特徴だが人間のメンタルモデルに近いから
理解しやすい。例えば「あなたの年齢は?」みたいに聞くだろう?
年齢を知りたいときに、あなたの生年月日は?って聞いてからわざわざ計算しないだろ?
"あなた"が知っていることは、"あなた"に問い合わせればよい。
というのが人間にとって一番理解しやすいんだよ
Personクラスの属性にしていれば、
内部の実装が変わってもインターフェースを
変えなくてすむんだよ。
それにオブジェクト指向の特徴だが人間のメンタルモデルに近いから
理解しやすい。例えば「あなたの年齢は?」みたいに聞くだろう?
年齢を知りたいときに、あなたの生年月日は?って聞いてからわざわざ計算しないだろ?
"あなた"が知っていることは、"あなた"に問い合わせればよい。
というのが人間にとって一番理解しやすいんだよ
913デフォルトの名無しさん
2018/10/17(水) 23:05:26.01ID:Ny9Q/0jK 日付クラスの - オペレーターで
経過日数ではなく経過年数を返す作りになるのか。。。
さすが低学歴知恵遅れがいうことは斬新だわ
経過日数ではなく経過年数を返す作りになるのか。。。
さすが低学歴知恵遅れがいうことは斬新だわ
914デフォルトの名無しさん
2018/10/17(水) 23:07:02.95ID:Ny9Q/0jK やっぱり低学歴知恵遅れって感じ
もうすぐに分かってしまう
まともな教育を受けてればでてここないような発想が
ポンポンでてくる
低学歴知恵遅れのレスってすぐにわかる
いちいち低学歴知恵遅れですと自白するからな。。。
もうすぐに分かってしまう
まともな教育を受けてればでてここないような発想が
ポンポンでてくる
低学歴知恵遅れのレスってすぐにわかる
いちいち低学歴知恵遅れですと自白するからな。。。
915デフォルトの名無しさん
2018/10/17(水) 23:09:12.35ID:t+3zMNmx 弱い犬ほど?
916デフォルトの名無しさん
2018/10/17(水) 23:09:52.03ID:Ny9Q/0jK バカはバカであることに気づけない
ホントになよくわかるわ
ホントになよくわかるわ
917デフォルトの名無しさん
2018/10/17(水) 23:17:38.65ID:pcmrmHBT 関数型論者だったら「人」はDNAだけで表し、生まれた日、場所、その他その瞬間の宇宙の諸環境をすべて引数で与えて最後に経過時間も与えるのかな?
なんだ、関数型論者って決定論者だったんだな。
なんだ、関数型論者って決定論者だったんだな。
918デフォルトの名無しさん
2018/10/17(水) 23:30:29.90ID:4yuTjZOF919デフォルトの名無しさん
2018/10/17(水) 23:33:06.41ID:LhMTIXwM >>917
それは関数型論者でなくて適切な抽象度が理解できないただの抽象馬鹿だろ。
それは関数型論者でなくて適切な抽象度が理解できないただの抽象馬鹿だろ。
920デフォルトの名無しさん
2018/10/17(水) 23:48:24.78ID:MwWLHD/k >>913
あれ?日付クラス(Date)の中にYaer、Man、Dayって年クラス、月クラス、日クラスって無かったっけ?
すまんね。
だいぶ離れてて、うろ覚え。
>>912
うん?
だからPersonクラスがAgeプロパティだかメソッド持つんだろ?
日付クラスだか時間クラスだかが年数計算メソッド持つ必要は無い。
時間はただ時間、日付はただ日付。
年齢もただ年齢ってのもある意味じゃ正しい。
システム上不都合なら管理クラスに計算させて、結果を受け取るだけでも良い。
オブジェクト指向は、必ずしも現実と同じ区分けでなくて良い。
責任分担をキッチリするための道具でしかない。
保守性に問題なければ、システムの特性に合わせてどちらが管理するのか決めれば良い。
(むしろ現実と離れることが多いから、あんまり現実だとこうだから〜とか、こだわり過ぎない方がいい)
あれ?日付クラス(Date)の中にYaer、Man、Dayって年クラス、月クラス、日クラスって無かったっけ?
すまんね。
だいぶ離れてて、うろ覚え。
>>912
うん?
だからPersonクラスがAgeプロパティだかメソッド持つんだろ?
日付クラスだか時間クラスだかが年数計算メソッド持つ必要は無い。
時間はただ時間、日付はただ日付。
年齢もただ年齢ってのもある意味じゃ正しい。
システム上不都合なら管理クラスに計算させて、結果を受け取るだけでも良い。
オブジェクト指向は、必ずしも現実と同じ区分けでなくて良い。
責任分担をキッチリするための道具でしかない。
保守性に問題なければ、システムの特性に合わせてどちらが管理するのか決めれば良い。
(むしろ現実と離れることが多いから、あんまり現実だとこうだから〜とか、こだわり過ぎない方がいい)
921デフォルトの名無しさん
2018/10/17(水) 23:55:39.80ID:RzUo3BE1 生年月日は、属性・インスタンス変数
年齢は、computed・算出プロパティ
年齢は、computed・算出プロパティ
922デフォルトの名無しさん
2018/10/18(木) 00:04:29.24ID:/P5hGycw Ruby で、年齢をクラス化したもの
誕生日から年齢を計算するhappybirthday gemをリリースしました
https://takanamito.hateblo.jp/entry/2018/05/15/091820
誕生日から年齢を計算するhappybirthday gemをリリースしました
https://takanamito.hateblo.jp/entry/2018/05/15/091820
923デフォルトの名無しさん
2018/10/18(木) 00:08:50.77ID:8YBQxCvu るびぃ〜すとwwwww
924デフォルトの名無しさん
2018/10/18(木) 00:19:48.94ID:qf9NxgCD >>918
年齢計算や年数計算は大事な場所じゃ無かったし、言う通り日付クラスに年数計算メソッド付けるべき?が話題の中心だったと思う。
年齢計算や年数計算は
_______日付クラスA = 今日の日付 − 生年月日(または任意の年月日)
return 日付クラスA.Yaer
とかだった気がする。
うろ覚えだが。
年齢計算や年数計算は大事な場所じゃ無かったし、言う通り日付クラスに年数計算メソッド付けるべき?が話題の中心だったと思う。
年齢計算や年数計算は
_______日付クラスA = 今日の日付 − 生年月日(または任意の年月日)
return 日付クラスA.Yaer
とかだった気がする。
うろ覚えだが。
925デフォルトの名無しさん
2018/10/18(木) 00:25:14.97ID:855u7n6N 難しい物なんだから
話が長くなるのは当たり前
既に知っている事を話す以外だと
相手に解る様に話すのに分量が掛かる
当然だろう
話が長くなるのは当たり前
既に知っている事を話す以外だと
相手に解る様に話すのに分量が掛かる
当然だろう
926デフォルトの名無しさん
2018/10/18(木) 00:35:20.72ID:/ofNkRJS927デフォルトの名無しさん
2018/10/18(木) 00:36:08.12ID:THsg9J3q いや低学歴知恵遅れは
頭ワルイという病気
不治のヤマイ
頭ワルイという病気
不治のヤマイ
928デフォルトの名無しさん
2018/10/18(木) 00:38:55.28ID:/ofNkRJS またワンワンって聞こえる
929デフォルトの名無しさん
2018/10/18(木) 00:40:38.70ID:d31P7rqb >>927
あなたのその病治らなくて大変ですね
あなたのその病治らなくて大変ですね
930デフォルトの名無しさん
2018/10/18(木) 00:56:35.59ID:qf9NxgCD >>921
これ言うと元も子もないが、実際にはアカウント作る際に生年月日と年齢を別々に書かされる通り、計算なんて何処もしちゃいない。
気が付いたらユーザーが書き直してねって。
お勉強でもなけりゃ年齢計算はしない。
年計算用途の方が実践で使われてるかもね。
これ言うと元も子もないが、実際にはアカウント作る際に生年月日と年齢を別々に書かされる通り、計算なんて何処もしちゃいない。
気が付いたらユーザーが書き直してねって。
お勉強でもなけりゃ年齢計算はしない。
年計算用途の方が実践で使われてるかもね。
931デフォルトの名無しさん
2018/10/18(木) 01:06:50.02ID:qf9NxgCD932デフォルトの名無しさん
2018/10/18(木) 06:47:29.90ID:8rVApEa4 class Age {
public DateTime BirthDay { get; }
private DateTime Today { get; }
public int Years { get {
int b = BirthDay.Year * 10000 + BirthDay.Month * 100 + BirthDay.Day;
int t = Today.Year * 10000 + Today.Month * 100 + Today.Day;
return (t - b) / 10000; }}
public Age(DateTime b, DateTime t) { ...
class Person {
public DateTime BirthDay { get; set; }
private DateTime Today { get; set; }
public Age Age => new Age(BirthDay, Today);
public Person(DateTime b, DateTime t) { ...
public DateTime BirthDay { get; }
private DateTime Today { get; }
public int Years { get {
int b = BirthDay.Year * 10000 + BirthDay.Month * 100 + BirthDay.Day;
int t = Today.Year * 10000 + Today.Month * 100 + Today.Day;
return (t - b) / 10000; }}
public Age(DateTime b, DateTime t) { ...
class Person {
public DateTime BirthDay { get; set; }
private DateTime Today { get; set; }
public Age Age => new Age(BirthDay, Today);
public Person(DateTime b, DateTime t) { ...
933デフォルトの名無しさん
2018/10/18(木) 08:12:51.70ID:0Dh4HQ87 >>912
その質問は暗黙に(今の)が入ってるんじゃない?
その質問は暗黙に(今の)が入ってるんじゃない?
934デフォルトの名無しさん
2018/10/18(木) 08:15:28.19ID:0Dh4HQ87 半角さんは設計スキルないんだからもう書き込むなよ。
実際間違った実装を想定して設計の話ししただろ?
実際間違った実装を想定して設計の話ししただろ?
935デフォルトの名無しさん
2018/10/18(木) 08:19:16.70ID:0Dh4HQ87 >>930
電子カルテだとまあまず患者マスタに年齢は持たないよ。
いつ時点に、何歳か、って方が大事だから。
どのタイミングで年齢計算するかとなると、入院中に歳を取るパターンがあるので結局毎日計算するハメになる。
それこそ業務によると思うが。
ただ普通のウェブサイトでも、生年月日聞くところで年齢を聞かれる事はあんまり無いんじゃないかな。
電子カルテだとまあまず患者マスタに年齢は持たないよ。
いつ時点に、何歳か、って方が大事だから。
どのタイミングで年齢計算するかとなると、入院中に歳を取るパターンがあるので結局毎日計算するハメになる。
それこそ業務によると思うが。
ただ普通のウェブサイトでも、生年月日聞くところで年齢を聞かれる事はあんまり無いんじゃないかな。
936デフォルトの名無しさん
2018/10/18(木) 08:45:54.88ID:qf9NxgCD >>935
なるほど、カルテだったら閏年で何歳ってより、生物として生まれて何年目、的な意味合いの方が重要だし、有りかも。
年齢まで求める場所減ってるか知らないけど、情報的な価値は低いかもね。
統計的に扱うだろうから、生年月日で何年生まれか分かれば十分だし。
なるほど、カルテだったら閏年で何歳ってより、生物として生まれて何年目、的な意味合いの方が重要だし、有りかも。
年齢まで求める場所減ってるか知らないけど、情報的な価値は低いかもね。
統計的に扱うだろうから、生年月日で何年生まれか分かれば十分だし。
937デフォルトの名無しさん
2018/10/18(木) 11:41:18.85ID:ia232fMX 手術した日から何年経ったか表示してと言われて裏で誕生日クラスが使われる
938デフォルトの名無しさん
2018/10/18(木) 12:26:47.14ID:PmW8gRMT939デフォルトの名無しさん
2018/10/18(木) 12:45:03.88ID:0Dh4HQ87 >>936
何歳って概念も結構大事で、6歳未満にはできない、とか、6歳未満だからいくら、とか結構決まり事があるんよ。
それ守らないと保険組合からお金がもらえない。
暦の上の、いわゆる法律上の年齢も無視できないんよ。
それは、医師の指示を実施した日で計算するとか、日付の取り方も色々ある。
医学的に必要になってくるとすると、何ヶ月早産児の何ヶ月児が、正規産だと何ヶ月児だよ、とか。
こっちは、だいたい週計算する。
何歳って概念も結構大事で、6歳未満にはできない、とか、6歳未満だからいくら、とか結構決まり事があるんよ。
それ守らないと保険組合からお金がもらえない。
暦の上の、いわゆる法律上の年齢も無視できないんよ。
それは、医師の指示を実施した日で計算するとか、日付の取り方も色々ある。
医学的に必要になってくるとすると、何ヶ月早産児の何ヶ月児が、正規産だと何ヶ月児だよ、とか。
こっちは、だいたい週計算する。
940デフォルトの名無しさん
2018/10/18(木) 12:45:24.34ID:b1Fs59oz 日付クラスを継承して誕生日クラスとか作り出す奴がいるから無駄に複雑になる。
941デフォルトの名無しさん
2018/10/18(木) 13:23:27.88ID:b1Fs59oz 無駄にクラス化しようとする奴も同罪。だからオブジェクト指向がクソと言われる。
942デフォルトの名無しさん
2018/10/18(木) 14:01:33.21ID:bqWuTIEf だから業務共通クラスの1メソッドにしとくんだろ、普通
バッチが日跨ぎしても基準日は変えないとか、業務やシステムの要素と切り離しできるなら話も変わるけど
バッチが日跨ぎしても基準日は変えないとか、業務やシステムの要素と切り離しできるなら話も変わるけど
943デフォルトの名無しさん
2018/10/18(木) 14:13:24.19ID:A+ZA0oir クラスもいいけど、共通処理は単なる関数ライブラリの方がありがたいよな。
944デフォルトの名無しさん
2018/10/18(木) 14:59:01.57ID:6luTq9qj945デフォルトの名無しさん
2018/10/18(木) 15:25:24.79ID:3douRw4T Person.birthday.dateなの?
946デフォルトの名無しさん
2018/10/18(木) 16:59:23.38ID:A+ZA0oir 2つの日付けを引数にしてその日数を返す関数あれば、それだけでよくね?
変にクラス内に閉じ込めてもメリット無いと思うんだけど?
少なくともpersonクラスには誕生日を返すくちがあればそれでいいと思うよ。
それをどう加工するかは、表示クラスだったり年金計算クラスだったりでやればいいんだよ。
変にクラス内に閉じ込めてもメリット無いと思うんだけど?
少なくともpersonクラスには誕生日を返すくちがあればそれでいいと思うよ。
それをどう加工するかは、表示クラスだったり年金計算クラスだったりでやればいいんだよ。
947デフォルトの名無しさん
2018/10/18(木) 17:52:04.62ID:/ofNkRJS948デフォルトの名無しさん
2018/10/18(木) 17:55:05.67ID:80M+etW5 関数型や手続きだとこんな議論にならん辺りやっぱオブジェクト指向はアカンな
949デフォルトの名無しさん
2018/10/18(木) 18:03:23.12ID:b1Fs59oz 誕生日から年齢導くだけの処理に、幾つのファイルとどの位のコストが必要なのかねぇ。
保守性とはホント真逆だわ。
保守性とはホント真逆だわ。
950デフォルトの名無しさん
2018/10/18(木) 18:12:21.82ID:vIc/Em84951デフォルトの名無しさん
2018/10/18(木) 18:17:11.53ID:b1Fs59oz それよりも複雑化によるデメリットの方が計り知れない。
そもそもコード量を減らすためにクラス化とかあるのに逆に増えるってどんな呪いだよ。
そもそもコード量を減らすためにクラス化とかあるのに逆に増えるってどんな呪いだよ。
952デフォルトの名無しさん
2018/10/18(木) 18:20:48.86ID:vIc/Em84953デフォルトの名無しさん
2018/10/18(木) 18:29:38.57ID:3douRw4T 棒グラフにするの大変やな
954デフォルトの名無しさん
2018/10/18(木) 18:32:26.45ID:3douRw4T 平均年齢もきつい
955デフォルトの名無しさん
2018/10/18(木) 18:34:20.75ID:7CPcoAfm 設計がおかしいとおかしなクラスが乱造される
一クラス一機能をつら抜いてFileRemoverとかFileRenamerクラス作ってる人は死んだほうがいい
MultiFileRemoverとか本当に必要なら作れよと思う
一クラス一機能をつら抜いてFileRemoverとかFileRenamerクラス作ってる人は死んだほうがいい
MultiFileRemoverとか本当に必要なら作れよと思う
956デフォルトの名無しさん
2018/10/18(木) 18:37:53.29ID:b1Fs59oz >>952
だから呪い。実際、出来上がってるものの大半は真逆の事になってるんじゃないかね。
だから呪い。実際、出来上がってるものの大半は真逆の事になってるんじゃないかね。
957デフォルトの名無しさん
2018/10/18(木) 18:42:34.52ID:80M+etW5 オブジェクト指向は書く量と段取りを増やすデメリットをもって
パーツや責任関係の切り分けを行う作業と理解しております
パーツや責任関係の切り分けを行う作業と理解しております
958デフォルトの名無しさん
2018/10/18(木) 18:45:45.21ID:b1Fs59oz それならわかる。
959デフォルトの名無しさん
2018/10/18(木) 19:06:46.96ID:vIc/Em84 日付型とかあるじゃん
あれ中身はただの整数値だけどだからってじゃあ整数値のままでいいじゃんとはならない
なぜなら整数値を日付とみなして注意深く扱うよりも
さっさと日付型を作ってしまったほうが間違いが減って問い合わせや演算が楽になり理解しやすくなるから
同じことをドメインでもやりましょうというだけの話なんだけど何をそんなに恐れてるのだろう
あれ中身はただの整数値だけどだからってじゃあ整数値のままでいいじゃんとはならない
なぜなら整数値を日付とみなして注意深く扱うよりも
さっさと日付型を作ってしまったほうが間違いが減って問い合わせや演算が楽になり理解しやすくなるから
同じことをドメインでもやりましょうというだけの話なんだけど何をそんなに恐れてるのだろう
960デフォルトの名無しさん
2018/10/18(木) 19:25:21.20ID:7CPcoAfm 架空言語にて
private Name name=new Name()
public Person(string name){
Name tmpName=new Name(name);
if(tmpName != null){
this.name=tmpName;
}
}
private Name name=new Name()
public Person(string name){
Name tmpName=new Name(name);
if(tmpName != null){
this.name=tmpName;
}
}
961デフォルトの名無しさん
2018/10/18(木) 19:26:39.70ID:qf9NxgCD >>947
そう言うのがいるからうちの会社は社用スマホが古いんだから、もっとアプリ軽くしろとか注文入って鯖に処理を移す事になるんだよ。。。
ある程度はどっちに比重置くか考えて作った方がいい。
そういう所こそ設計の腕の見せ所。
そう言うのがいるからうちの会社は社用スマホが古いんだから、もっとアプリ軽くしろとか注文入って鯖に処理を移す事になるんだよ。。。
ある程度はどっちに比重置くか考えて作った方がいい。
そういう所こそ設計の腕の見せ所。
962デフォルトの名無しさん
2018/10/18(木) 19:30:01.60ID:/ofNkRJS > そう言うのがいるからうちの会社は社用スマホが古いんだから、もっとアプリ軽くしろとか注文入って鯖に処理を移す事になるんだよ。。。
全く無関係の話をされても困るんだが?
全く無関係の話をされても困るんだが?
963デフォルトの名無しさん
2018/10/18(木) 19:39:03.88ID:qf9NxgCD 理想と現実は違うって事。
人間のこと考えたいけど、仕様変更繰り返すうちにグダグダになる。
出来る事は破綻しない様に事前に想定される事に対処して、その後も破綻しない様に管理することだけ。
人間のこと考えたいけど、仕様変更繰り返すうちにグダグダになる。
出来る事は破綻しない様に事前に想定される事に対処して、その後も破綻しない様に管理することだけ。
964デフォルトの名無しさん
2018/10/18(木) 19:50:43.92ID:KBtBXMK/ >>963
だからオブジェクト指向が必要なんだよね
だからオブジェクト指向が必要なんだよね
965デフォルトの名無しさん
2018/10/18(木) 19:54:07.63ID:qf9NxgCD966デフォルトの名無しさん
2018/10/18(木) 19:54:59.16ID:/ofNkRJS 従業員かもしれんし、何を言ってんだお前は?
967デフォルトの名無しさん
2018/10/18(木) 20:37:26.00ID:4AdjqlvR968デフォルトの名無しさん
2018/10/18(木) 21:17:00.48ID:A+ZA0oir >>947
だからさ、業務によって年齢の扱いが違うんだから、固有の業務に特化した属性なんて実装は避けるべきなんだよ。
やりたいならpersonクラスじゃなくて業務クラスに持たせるべき。
それじゃ無いと、様々な業務に適用させる度に微妙に違う属性を返さなきゃならんくなるだろ?
だからさ、業務によって年齢の扱いが違うんだから、固有の業務に特化した属性なんて実装は避けるべきなんだよ。
やりたいならpersonクラスじゃなくて業務クラスに持たせるべき。
それじゃ無いと、様々な業務に適用させる度に微妙に違う属性を返さなきゃならんくなるだろ?
969デフォルトの名無しさん
2018/10/18(木) 21:24:05.33ID:/ofNkRJS > だからさ、業務によって年齢の扱いが違うんだから、固有の業務に特化した属性なんて実装は避けるべきなんだよ。
Personクラスはそもそも業務に特化したクラスだろう?
現実世界の人間を完全シミュレートする。それがオブジェクト指向だって
考えてるのはお前だけやで
Personクラスはそもそも業務に特化したクラスだろう?
現実世界の人間を完全シミュレートする。それがオブジェクト指向だって
考えてるのはお前だけやで
970デフォルトの名無しさん
2018/10/18(木) 21:25:37.05ID:A+ZA0oir >>969
いや、そもそもオブジェクト指向はパーツの使い回しがテーマだからな。
いや、そもそもオブジェクト指向はパーツの使い回しがテーマだからな。
971デフォルトの名無しさん
2018/10/18(木) 21:26:42.98ID:/ofNkRJS パーツの使い回しはオブジェクト指向じゃなくてもできるんで
それは全然違いますー
それは全然違いますー
972デフォルトの名無しさん
2018/10/18(木) 21:28:20.39ID:/ofNkRJS いやはや驚きだ。これが馬鹿というものか
まさか、どんな業務にでも通用する
Personクラスを想定していたとは
世界にたった一つPersonクラスがあれば
ゲームから業務まで何でも使えるものを想定していたとはな
愚かとしか言いようがない
まさか、どんな業務にでも通用する
Personクラスを想定していたとは
世界にたった一つPersonクラスがあれば
ゲームから業務まで何でも使えるものを想定していたとはな
愚かとしか言いようがない
973デフォルトの名無しさん
2018/10/18(木) 21:32:01.02ID:A+ZA0oir 少なくとも会社や自分の作るアプリで使い回す為にオブジェクト指向で作るんだからな。
おまえみたいに毎回特定業務に特化してフルスクラッチから作るとかバカしかやらんぞ。
おまえみたいに毎回特定業務に特化してフルスクラッチから作るとかバカしかやらんぞ。
974デフォルトの名無しさん
2018/10/18(木) 21:33:57.36ID:/ofNkRJS >>973
え?お前こういったじゃん
> やりたいならpersonクラスじゃなくて業務クラスに持たせるべき。
お前は、使い回すために業務クラス作ってんのか?
どんな業務でも汎用的に使えるもの = 業務クラスだったのか?
え?お前こういったじゃん
> やりたいならpersonクラスじゃなくて業務クラスに持たせるべき。
お前は、使い回すために業務クラス作ってんのか?
どんな業務でも汎用的に使えるもの = 業務クラスだったのか?
975デフォルトの名無しさん
2018/10/18(木) 21:35:16.82ID:/ofNkRJS 使い回さ(せ)ないもの = 業務クラス
Personクラスは使い回せない = 業務クラス
俺はこう言ってるだけなんだが、
こいつは何を言ってるんだろうか?
Personクラスは使い回せない = 業務クラス
俺はこう言ってるだけなんだが、
こいつは何を言ってるんだろうか?
976デフォルトの名無しさん
2018/10/18(木) 21:37:02.39ID:A+ZA0oir アホに構ってしまった。
personなんて一般的な名前で個別に特化したクラスを作るあほは社会の迷惑だからしんでくれ。
personなんて一般的な名前で個別に特化したクラスを作るあほは社会の迷惑だからしんでくれ。
977デフォルトの名無しさん
2018/10/18(木) 21:38:08.80ID:/ofNkRJS978デフォルトの名無しさん
2018/10/18(木) 21:43:24.79ID:A+ZA0oir それじゃ解決できねーんだよw
979デフォルトの名無しさん
2018/10/18(木) 21:59:23.07ID:d31P7rqb マクロ使ってスコープ無視してるんじゃね
980デフォルトの名無しさん
2018/10/18(木) 22:04:29.72ID:A+ZA0oir つうか、使いまわせないから却下。
981デフォルトの名無しさん
2018/10/18(木) 22:20:46.14ID:d31P7rqb 名前空間内に入っていてその業務に特化したpersonという標準クラスはok派。
それを継承して使いまわしてもいいじゃない。
それを継承して使いまわしてもいいじゃない。
982デフォルトの名無しさん
2018/10/18(木) 22:53:19.65ID:2FmMLZik 名前空間のせいで型名が長い
その反動で関数名は短すぎるから型を省略したら情報が少なすぎて読めない
型を宣言する言語としない言語の対立が最も激しくなる仕組み
その反動で関数名は短すぎるから型を省略したら情報が少なすぎて読めない
型を宣言する言語としない言語の対立が最も激しくなる仕組み
983デフォルトの名無しさん
2018/10/18(木) 23:03:48.89ID:vIc/Em84 personに関わる宇宙の真理を考えてる奴がマジでいてクソワロタwww
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- H3ロケット8号機打ち上げ失敗、衛星軌道投入できず ★6 [少考さん★]
- 鈴木農相、おこめ券ではコメしか買えないとの誤解が広がっている 食料品などに幅広く使える [Hitzeschleier★]
- ゼレンスキー氏「高市総理に感謝」 9000億円超追加支援に 「国際秩序に貢献」 (動画あり) [ごまカンパチ★]
- 【兵庫】午後8時半、公園で座り込む小6男児「門限過ぎ、怒られるから帰れない…」 送り届けた女子高生2人に感謝状 尼崎 [ぐれ★]
- 【MLB】村上宗隆の『小型契約』は吉田正尚の影響か 市場が思いのほか停滞 「NPB打者に懐疑的。吉田が高すぎた」 [冬月記者★]
- 【酒】外国人は呆れている…「酒に酔って潰れる日本人」が海外で“めちゃくちゃ軽蔑”されるワケ ★2 [ごまカンパチ★]
- 【実況】博衣こよりのえちえちねっこよ24m 🧪🍑 🥟★4
- 【実況】博衣こよりのえちえちねっこよ24m 🧪🍑 🥟★3
- 🏡
- 俺とセックスさせたいキャラ
- ( ´・ω・` )それあたしにもください
- 嫌儲の核保有反対派ってなんであんなに馬鹿みたいなやつしかいないの? [848333321]
