1 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 00:20:32 ] クラス名、変数名のつけ方に悩んだら書き込むスレです。 質問する人は、その変数に何を格納するのか(クラスだったらその役割) プログラミング言語は何なのかを、それぞれ書いて、 いい変数名を思いついた人は、それに答えてあげましょう。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 >>2 英和・和英・英英など各国語辞書と翻訳サイト。 >>3 類義語(シソーラス)辞書、図形・数式・数学用語の英単語。 >>4 関連スレと、いろいろな言語規約。 >>2-10 諸事情によりリンクがずれた場合。 前スレ。 ◆ネーミング倶楽部◆: pc3.2ch.net/tech/kako/1035/10353/1035362308.html Part1: pc5.2ch.net/tech/kako/1046/10465/1046541730.html Part2: pc5.2ch.net/tech/kako/1058/10582/1058213523.html Part3: pc5.2ch.net/test/read.cgi/tech/1067171530/ Part4: pc5.2ch.net/test/read.cgi/tech/1087209526/ Part5: pc8.2ch.net/test/read.cgi/tech/1109330204/ Part6: pc8.2ch.net/test/read.cgi/tech/1128266018/ Part7: pc8.2ch.net/test/read.cgi/tech/1144978008/ Part8: pc10.2ch.net/test/read.cgi/tech/1154448184/ Part9: pc11.2ch.net/test/read.cgi/tech/1168356029/ Part10: pc11.2ch.net/test/read.cgi/tech/1180146315/ Part11: pc11.2ch.net/test/read.cgi/tech/1191250784/ Part12: pc11.2ch.net/test/read.cgi/tech/1206118762/ Part13: pc11.2ch.net/test/read.cgi/tech/1222661623/
152 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 01:40:09 ] TimePartOfNowならすんなり受け入れられるんだがな それ以前に定数に対してNow,Today,TimeOfNowと付けるんだから半端ないわ
153 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 02:15:30 ] だんだん慣れてきた
154 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 20:15:30 ] >>152 今頃になってネチネチいうって難儀な性格だねホント。 正直精神分析の対象に思える。 しかも言うことが素っ頓狂だし。 まず結論から言うとTimePartOfNowとTimeOfNowは同じ'Now'を使ってもそれの 意味しているものが違うだけで、どちらもお題の答えとして正しい。 君のいうTimePartOfNowの'Now'はNowという名前のデータ構造が存在していることを 前提とした命名だろ。 俺の言ったTimeOfNowの'Now'は文字通りのNowだから。 普通の英会話で"date of today"とは言っても"date part of today"なんて言ったら意味不明だろ。 それから、定数(というかマクロで定義された即値)を大文字をアンダースコアで区切りで 表現するのってC/C++の慣習だろ。 他の言語じゃあまりやらないよ。(そもそもマクロで即値定義なんて原始的なことやってるの C/C++とアセンブラぐらいしかないし。) つーか基本的に意味ない習慣だからCでも自分だけで完結するコードなら俺は従わない。
155 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 20:17:56 ] >>154 今頃になってネチネ(ry
156 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 20:21:54 ] 最後に肝心なことを言い忘れたが、キャメルかパスカルかアンダーバー区切りか、 なんて命名の本質と何も関係ねえだろw なんていうか、語るに落ちてるんだよな。 「命名以外の話題は禁止」と執拗にイチャモンをつける一方で、 同じ口で平気で命名の本質と何も関係ないことに固執する、この一貫性のなさ。 一貫してるのは、要するに「執拗に他人にケチをつけている」という一点においてのみ。
157 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 22:05:14 ] >>154 なにを言っているのだお前は。1行目からおかしいだろ
158 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 22:25:35 ] >>154 びっくりした。 本当に、びっくりした。
159 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 22:27:42 ] >>154 C++もマクロで即値定義なんてことはやらないよ。 やってると思った?
160 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 22:46:24 ] >>154 やっぱり期待通りに笑わせてくれるのなw date part of today w 作為的なT.O.N.でもない例えでフイタw
161 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 23:19:52 ] >>154 馬鹿か。 慣習は情報伝達コストを大幅に下げる。 命名に拘る理由の大部分が伝わり易さを求めている以上、基本的に意味ない習慣とか厨二馬鹿にしか言えないわ。 お前が慣習に従うかなんて誰も興味ないっつーの。 お前の狭量自慢もいい加減にしてくれ。 そして自分だけで完結しないこのスレで俺ルールを撒き散らすな。
162 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 23:20:07 ] こうしてTONさんは芸風を磨いていくんだな。 エールをおくらせてもらうよ!!! T.O.N!!! T.O.N!!!
163 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 23:29:43 ] >>157-161 自演乙
164 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 23:32:37 ] 奥義!敵は全て一人の自演発動!
165 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 00:00:57 ] 久しぶりにわろたw これは真性w
166 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 00:13:24 ] 自演って。言葉の意味を気にする割には、これを見て自演って。
167 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 00:19:45 ] また神が降臨したよね!ね!
168 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 00:30:37 ] >>154 >>156 すごい・・・粘着質です・・・
169 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 00:44:38 ] なにかホッとした。
170 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 01:07:17 ] >>161 君それに後続する人の話をちゃんと読んで突っかかってる? 俺は、キャメルとかアンダースコア区切りとか、その種のスタイルの違いは命名の本質と 関係がないから(つまりスレの趣旨に従えばどうでもいいことだから)自分の好きなスタイルで 書いただけで、別に「アンダースコアで区切る書き方をするのは無意味だから止めるべき」などとは いってないから。 わけのわからんことで突っかからないでくれる? こんな頭悪い奴に馬鹿呼ばわりされたくないよまったくw まあ、言いがかりに目をつぶってあえて君の話にのっかかると、 >慣習は情報伝達コストを大幅に下げる。 これはまったく同意なんだが、件の即値を大文字でアンダースコア区切りで 表現する慣習に関して言えば、これによって伝達される情報が本当に 必要不可欠な情報かどうかは俺は大いに疑問を持ってる。 他人が書いたコードを読むとき、たいがいの場合は「それ」が即値か定数か変更可能な変数か、 なんてことはどうでもいい場合が多いからね。 システムハンガリアン的な無意味で時代遅れな偏執に過ぎないでしょ。
171 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 01:11:04 ] 言い合いは英語でお願いします 加えて簡潔な単語でお願いします
172 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 02:04:47 ] >>171 ゴミはゴミ箱に入ってろ
173 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 02:18:06 ] 誰だよ召還したやつは
174 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 02:26:25 ] 煽ると必ず面白い反応するから癖になる
175 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 03:01:34 ] くど過ぎワロタ TONでもなくウザい人種だなw
176 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 03:02:18 ] >>170 で、C++でも#define HOGE 5とか書いちゃうの?
177 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 03:02:53 ] まだまだいくよー!
178 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 03:11:21 ] >>176 余り虐めるなよw Java以外の経験があるわけが無い
179 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 04:28:49 ] #define FiveOfNumbers 5
180 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 08:25:29 ] FiveOfNumだな
181 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 12:46:16 ] ちょっとかっこよくFifthNumberにしようぜ!
182 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 16:01:51 ] それって4?
183 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:26:46 ] >>170 このスレで最上級に偉そうな君の言語経験を教えては貰えまいか? それぞれ実務何年で頼みます。
184 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 20:28:56 ] そんなの知りたくないし
185 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:42:29 ] もうお前ら大好きw
186 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:45:48 ] 俺はお前が嫌いだ
187 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:36:03 ] TimeOfNowって何? ぐぐっても、2chのスレくらいいしか見つからないけど、それって面白い話題?
188 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:45:49 ] 実をいうと馬鹿馬鹿しくて真面目に読んでなかったので どんなネタなのか俺にも分からない
189 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:45:54 ] 時々現れるアホのニックネーム
190 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 00:28:13 ] 訳してみるか まさに今の時間 みたいな強調表現かもな
191 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 00:37:39 ] 凡人並の知能は持ち合わせている様なんだけど 何故かとても あたまがわるい それがTimeOfNow
192 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 02:54:36 ] セカイ系とか自演とかに特殊な俺定義を行っているのも特徴 簡潔に表すなら、重度の中二病患者
193 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 08:03:28 ] 今進行中の世界の時間っても訳せる
194 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 16:18:56 ] 301リダイレクトされた場合に、正しいURLを求める関数名は何がいいかな? 暫定的に、getResolvedURLとしているけど、これは相対パスから絶対URLを 作成するときに使うような名前だよね?
195 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 16:20:27 ] getRedirectedURL
196 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 16:30:32 ] >>195 ありがとん
197 名前:デフォルトの名無しさん [2009/02/07(土) 15:44:51 ] 質問です。 いわゆるフラグという言葉は、本来は2値のみを意味するときに使う言葉でしょうか。 例えば1変数のビットごとに定数を当ててオプション指定するなんて例があったとして ビットごとに見れば(アリかナシかの)フラグだし、変数としてみれば2値ではないし こういう場合に変数名にフラグと入れるのは変でしょうか
198 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 15:46:44 ] flagsにすればいいじゃん。
199 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 15:51:07 ] >>197 ありがとうございます。 こういうビット演算によって複数のオプション指定したりする手法にあつらえ向きの名前なんてのはないんでしょうか。
200 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 15:51:32 ] >>198 の間違えです
201 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 16:02:28 ] ビットフィールド?
202 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 16:14:48 ] なんか検索したらビットフラグとかビット配列(これは多分違うかも)とか出てきました。 >>201 ビットフィールドはC/C++のイメージがあるのでニュアンスが違う気もします・・・
203 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 16:19:07 ] >>199 普通は「その値の特殊な扱い方」、つまりビットマスクを使ってビットごとに 情報を格納したり取得したりする必要がある、なんてことを変数の名前に 盛り込む必要はないはずだと思う。 そんなことより、そのビットごとの値の集合であるその変数の「意味」に注目して名前をつけるべき。 hogeOptionsとかhogeMethodとかhogeModeとかhogeSettingsでいいじゃん。
204 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 16:23:16 ] >>203 なるほど!確かにそうですね・・・ 変なところにこだわっておりました。どうも。
205 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 17:56:44 ] __ , ‐' ´ ``‐、 / ̄:三} . /,. -─‐- 、. ヽ / ,.=j _,.:_'______ヽ、 .! ./ _,ノ `‐、{ へ '゙⌒ `!~ヽ. ! /{. / `! し゚ ( ゚j `v‐冫 , '::::::::ヽ、/ . {.l '⌒ ゙ 6',! / :::::::::::::::/ __ そんなことよりTimeOfNowの話しようぜ! . 〈 < ´ ̄,フ .ノー'_ , ‐'´::::::::::::::;/ (_ノ)‐-、 . ヽ.、 ` ‐", ‐´‐:ラ ':::::::::::::::: ;∠. ヽ_} ゙ヽ ,.r` "´ /:::::::::::::::::::ィ´ `ゝ !、 / / / :::::::::::::::: ; '´ /´\ / r'\ . i ! ::::::::::::::/ 墨 | .!::::::::/ヽ、.._!ヽ. ヽ、 { {:::::::::::;:イ / ‖i:::::::/:::::::::::::/ \ . ヽ ヽ,.ァ‐'´ /ヽ 二 ,/`ヽ、::::::::: / ヽ ヽ、 ,. ‐'" .ノ ,〈 > `'‐- ' > _,. ‐'´ / / `) ,ゝ _.⊥.-r┬:/ ヽ_,. -‐i"!´「L.=!┘ ヽ < / / | / 、i / __ ./
206 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 19:42:42 ] 爽やかだなw
207 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 06:01:57 ] フラグと聞いて真っ先に頭に浮かんだのがツンデレ オレって…
208 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 12:51:28 ] 死亡フラグ
209 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 00:03:15 ] 画像のサイズを2のn乗にするプログラムを書いてるのですが、 int xを与えられたときに、xより小さくない2の乗数を返す関数の名前はどういうのがよいでしょうか。 自分で考えたのはint up_to_pow2(int x);といった具合ですが、WEB辞書を見てみると、up to というのが どうやら思っていたのと違う意味のようでした。
210 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 00:11:33 ] ? 条件をもっとはっきり。 x以下の2の乗数のうち最大のものを返すのか、x以上の2の乗数のうち最小のものを返すのか、 どっちだ?
211 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 00:12:47 ] ceil
212 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 00:13:35 ] 逃げのような気もするが、normalize_image_sizeとか。
213 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 00:14:11 ] すいません。xより小さくない、最小の2の乗数 です。
214 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 00:15:06 ] up to じゃなくて、round up to じゃないかね?
215 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 00:19:03 ] いろいろ出してくれてありがとうございます。 cの数学関数にちなんでceilにしようかとも思いましたが、 ceil_pow2, ceil_to_pow2で意図した意味を成すのか不安なのでround_up_to_pow2にします。
216 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 00:19:37 ] 汎用的に使う関数なら、round_up_to_power_of_2()かなあ。 画像サイズの正規化にしか使わないと決まっているものなら、>>212 でいいんじゃね。
217 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 00:20:27 ] ぐぐると、 power of two round up とか rounding up an int to a power of two とか 出てくるからそれでいいとおもう。
218 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 01:10:25 ] 実験屋さんとかが使うMATLABだとnextpow2らしい。 俺ならとりあえずGetMinPowerOf2()とかGetMinPow2()とかしておいて、 必要ならオプションでFloorかCeilingを指定できるオーバーロードを追加するとかすると思う。 というか、過去にそんなの作った気がする。
219 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 01:16:32 ] まてよfloor指定するのなら名前にMinとか入ってると矛盾するのか。。
220 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 05:10:13 ] この際func001()で
221 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 08:25:21 ] 1度になぜ2つのことをする
222 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 08:27:59 ] はぁ???????・・・・・・
223 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 11:10:40 ] Part11にて。 265 :デフォルトの名無しさん[sage]:2007/11/22(木) 17:48:28 ある整数値を引数として与えて、その値以上の2のべき乗の数のうち、 最小のものを返す関数の名前は何が相応しいですか? 266 :デフォルトの名無しさん[sage]:2007/11/22(木) 17:52:58 least2PowerGreaterThan(int i) 267 :デフォルトの名無しさん[sage]:2007/11/22(木) 18:03:56 >>265 clp2 268 :デフォルトの名無しさん[sage]:2007/11/22(木) 18:29:21 2Power よりは Power2 の方がいい気が。 power of 2 の of を省略したもの。 昔、自分が使ったのは、CeilPower2 と FloorPower2 でそれぞれ 「x 以上の最小の2のべき」、「x 未満の最大の2のべき」にした。 >>267 も、ceiling power of 2 の略よね? 269 :デフォルトの名無しさん[sage]:2007/11/22(木) 19:02:30 >> >>267 も、ceiling power of 2 の略よね? Exactly. See Hacker's Delight www.informit.com/content/images/0201914654/samplechapter/warrench03.pdf 270 :265[sage]:2007/11/22(木) 21:09:54 どうもありがとうございました。 CeilPowerOf2にします。
224 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 01:36:48 ] 質問です。 3Dモデルのボーンマトリクス等で親を継承する前のマトリクスをLocalMatrix、 継承後のマトリクスをGlobalMatrixと表していますが、 頂点カラー等はライトが当たる前の元の色をLocalColor、ライトの色を適応した 最終的なカラーを保持するメンバ名をGlobalColorと言うものなんでしょうか? より適切な名前があるような気がしてなりません。 どなたかより良い名前があればご指摘お願いします。
225 名前:224 mailto:sage [2009/02/11(水) 01:44:12 ] すいません、質問を変更します。 上記の、元データLocalに対して親を継承したものをGlobalとつけていますが、 マトリクス以外の親を継承したデータの名前に対してGlobal〜とつけるのは適切でしょうか? 継承したデータ、の内容は、色加算等の描画フラグ、ソートの補正値等が含まれます。
226 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 20:57:36 ] >>225 るーとまとりくす(ry
227 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:01:41 ] ロシアンパブはパブから派生だお( ^ω^)おっおっ
228 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 03:59:03 ] 「TimeOfNow」って命名がセンスないっていうのが、 正直理解できてない…。 もしかしたら言葉にしづらい感覚的なことなのかもしれないが、 そこんところ、教えてもらえないかな
229 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 04:30:27 ] 前置詞っツーのは、前置詞っツーのは
230 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 18:03:17 ] よろしくおねがいします 「入力必須であることを設定、取得するプロバティ名」と、 「入力必須なのに入力されていない事を示すプロパティ名」に悩んでいるんだが、 何かいいアイデアないかな? 例えば、Requireと、IsRequireとか付けてみたんだが、 これじゃどっちがどっちだかわからないので、他のを考えてるんだけど思いつかない。
231 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 18:17:56 ] Required Missing
232 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 18:28:07 ] SetRequired IsRequired IsRequiredButNotFilledIn
233 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 18:33:04 ] IsRequired IsMissing
234 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 18:39:25 ] なるほど参考させてもらって IsRequiredとIsFilledがわかりやすそうなので、これにしました。 ありがとうございました
235 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 18:59:44 ] In...
236 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 19:14:00 ] (・∀・)インポ!!
237 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 19:21:58 ] それは Im... ぢゃ
238 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 20:53:05 ] しかし、「入力必須であることを設定、取得するプロバティ名」ってのはどういうことかのう。。 そのクラスは、文字列か何かの別のプロパティを一つだけ持っていて、 そのプロパティが必須かどうかを表すプロパティ、って意味なのか? だとしたらなんだか無駄な気がするんだけどな。 「それ」が必須かどうかを表現するためだけに、ただの文字列をラップするのか。 「それ」が必須かどうかなんてことは、そのデータを持つクラスが知ってればいいことだと思うけど。
239 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 21:03:22 ] 入力で未入力を許容するかどうかを確認する例はよくあるだろ
240 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 21:06:16 ] ToNじゃ!ToNがでたぞ! ま、開発経験の無いでっかちド馬鹿に一つだけ教えてやるけど よくある入力フォームでの話だろ お前は何の経験も無いから知らないだろうけど そんな理想論掲げるだけ無駄だし無意味だし金にもならないし社会活動として破綻してる
241 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 21:34:51 ] >>239 それはそうなんだが、俺(>>238 )の言ってる意味わかってる? 普通は>>230 みたいな変な実装しないと思うよ。 これじゃたわざわざ述する手間を増やして可読性を落としてるだけじゃん。
242 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 21:38:07 ] だからバリデータを自分で実装するからだろ
243 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 21:46:09 ] 必須は、mandatoryともいうな。
244 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 21:46:47 ] 設定するのが義務的な意味で。
245 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 21:48:31 ] >>241 例えばTextBoxの派生クラスを作るのに、 Require属性がなかったら、いちいち項目ごとに異なる派生クラスを作って、 いちいち入力必須かどうか記述しなくちゃいけないじゃん。 そのほうが手間だし可読性は最悪だろ Require属性があればプロパティを設定するだけですべてに応用ができる。
246 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 21:51:16 ] UserやらNameから派生したテキストボックスとかあったら爆笑しちゃう
247 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 21:55:44 ] >>246 バリデートもそれぞれ別にやらなきゃいけないしな User.IsMissing Name.IsMissing MailAddress.IsMissing ・・・・・ Address.IsMissing とか、いちいち全部チェックするのかしら。 手間だし可読性も最悪。
248 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:01:03 ] >>245 その入力欄が必須かどうかを表す値をGUI部品に持たせるって 普通は変な設計だと思うけどなw もちろん必須かどうかをユーザーに対して表示する機能を持たせるため、 というような事情はありうるだろうけど。 それ以前に、それって>>230 の話と違うことない? >>230 はGUI部品の話をしてたんだろうか?
249 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:01:56 ] >>241 ごめん、変じゃない実装って何? >>238 だけじゃいまいち分からん。
250 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:06:03 ] >>230 は「入力」の話をしてるのに GUIで入力しないで何で入力するんだ?念力? ユーザーオブジェクトの必須フィールドについてとかなら 全然違う書き方で質問してくると思うが
251 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:08:25 ] >>248 インターフェースでIsRequire属性を、それぞれのクラスに継承させ、 ファクトリークラスからインスタンスを生成する。 ファクトリークラスでは foreach(IInterface object in ObjectList) boolValue = boolValue & Object.IsMissing; これだけですべての項目のバリデートができる user、name、mailAddress、birthDay、age等すべてでValidateするのとどちらが可読性が上かい? そして、こんな設計は変なのかい? なんか書いていてむなしいぜ。
252 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:17:29 ] >>249 例えば、Customerクラスに氏を表すFamilyNameというメンバがあるとする。 そのFamilyNameが「入力必須」であることを表現するためだけに、 IsMissingをプロパティに持つ新たな型を導入するのは無駄だということ。 素直にFamilyNameは単純に文字列で持てばいい。 それが必須かどうかの情報はCustomerが持っている方が直感的だ。