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/
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が持っている方が直感的だ。
253 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:17:39 ] >>248 だからバリデータを自分で実装するからだろ 俺(>>242 )の言ってる意味わかってる?
254 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:21:38 ] >>252 そりゃ無駄だわw そして、当たり前の事だわw 最後に、ただのお前の勘違いだわw
255 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:24:43 ] >>252 逆 その理屈だと、どんな属性もそれを抱えるクラスが持てばいいことになる。 Formに貼り付けたUI部品のVisibleをすべてFormで管理するなんて煩雑過ぎる そのオブジェクトの属性は、そのオブジェクトが持つのが常識 かつ>>251 の書いているとおりインターフェースを利用した場合のほうが、 拡張すべき実装(例えば誰が入力したか)がでた場合に簡単に拡張できる。 インターフェースにUserを追加するだけだからな。
256 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:33:57 ] >>254 そうでもないよ。 例えばnullを許容するかどうかの場合を考えるとわかりやすいよ。 これは空文字とは別にnullなんだという情報をCustomerクラスに持つなんてしないでしょ。 その属性は、そのオブジェクトに持たせるのが常識。
257 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:43:20 ] そのCustomerオブジェクトがValidであるかどうかのチェックが必要な場合はCustomerクラスに記述すべきじゃない? 今回のお題とは全く別件だけどさ
258 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 23:08:54 ] >>255 >その理屈だと、どんな属性もそれを抱えるクラスが持てばいいことになる。 いや、そうは言ってないよ。 「そのオブジェクトの属性は、そのオブジェクトが持つのが常識」には完全に同意するけど、 FamilyNameが入力必須かどうかは普通に考えれば「Customerクラスの都合」であって FamilyNameの属性ではない。 ただ、>>251 の言うことが正しい(少なくとも一理ある)のは理解した。 >>251 の言う利点は正直あまり同意できないけど、確かに、例えば ある値に「不正な入力がされている」ことをUIに反映するようなことを考えるときには プロパティから取得したデータ自身が「自分が不正な値かどうか」を知っている方が便利だ。 言い訳がましいけど、俺は普段(「入力」ボタンが押されたときまとめて、ではなく) 個別のコントロールに入力された時点でプロパティの値を設定して、プロパティのセッタの中で バリデーションを行って結果はイベントで通知してUIに反映する、というコードを書く場合が多いので >>251 の発想はなかった。 「変」とか言ったのが気に障ったらそれは謝る。
259 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 23:13:20 ] ここは属性プログラミングの出番だと思うね。 まあ、 >命名規則や設計の善し悪しについて議論するのは基本的に禁止。 なんで、ほどほどに。
260 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 00:10:01 ] >>258 Webアプリじゃそんな贅沢な事出来ないしな
261 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 00:12:16 ] TONさんさー 今回は出なくていいよ。 正直これはどうでもいい。
262 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 00:15:26 ] >>258 それだとコントロールが追加されるごとに、 ・新たなプロパティ値を設定する部分 ・バリデーションをする部分 ・イベント通知をする部分 ・そのコントロールが未入力を許容するかどうか という項目をCustomerクラスに追加していかなきゃいけなくなるでしょ ファクトリークラスとインターフェースを利用すれば、 インスタンスを生成するだけで、それが自動的にできる。 そのためには、それぞれのコントロールにRequired属性が必要になるってこと。 >>259 これで最後にするよ。
263 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 00:26:49 ] T.O.N.さんは質問者が解決って言った後に愚痴り出すのが趣味だから、しょうがないよ
264 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 01:20:04 ] >>262 >インスタンスを生成するだけで、それが自動的にできる。 それはちょっとミスリードな言い方だな。 単にそれらの処理が書かれる場所がデータを所有するクラスからデータ自身のクラスに 変わるだけ、でしょ? もちろん、>>251 のコードのように列挙してチェックする必要がある項目が 多数になる可能性があるのなら、(1)データ自身に、(2)同じインターフェイスとして実装する ことによるポリモーフィズムの利点が利いてくるのは確か。 でも>>230 のような用途でそんな可能性があるのかなあ。 やっぱり正直、一見エレガントに見えて「策士策に溺れる」的に思える。 >そのためには、それぞれのコントロールにRequired属性が必要になるってこと。 ごめんこれは何を言っているのかよくわからん。 最後に、確かにこれはスレ違いと言われても仕方がない話題だねすまんかった。
265 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 01:21:52 ] >>258 解決済みの件を無駄だの変だのと蒸し返した挙句、 今日一番の長文が殆ど全部言い訳で占められてるってどうよ? 本当に性格悪いな、あんた。
266 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 01:29:07 ] >>264 何で質問者がいるうちに言わないの? 何で質問者が居なくなった頃を見計らって「ぼくのかんがえたしつもんしゃがいいたかったこと」を語りだすの? 何で質問者がそこまで間抜けな質問をしていると仮定するの?
267 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 01:47:57 ] >>264 >単にそれらの処理が書かれる場所がデータを所有するクラスからデータ自身のクラスに変わるだけ、でしょ? 「単に」ではなく、それが最も重要な利点。 Validateする内容が文字列だけだと勝手に決めてないか? stringだけなら、配列にいれた文字をstring == ""ですべてチェックできるが、 intやstringが混在する場合だと、その都度、異なるメソッドに割り振ってチェックしなきゃいけないから効率が悪い。 データ自身が処理を持っていれば、インターフェースで指定したValidateの返値を得るだけでチェックできる。 そしてユーザ指定型を追加して拡張したい場合でも、インターフェースさえ設定すれば、 所有クラスは何も変えずに使い続けることができる。 >でも>>230 のような用途でそんな可能性があるのかなあ。 十分にある。 ・Webアプリのコントロール→ボタン押下時に一斉にチェックする必要がある ・入力をチェックする再利用可能なValidationクラスの設計→メアド、数値など、 入力値をチェックするコントロールを再利用可能なクラスとして設計し、一斉にチェックする場合 ・データベースへInsertするための汎用クラスの設計→DateTime値、int値、nullかどうかなど、 それぞれの入力値を一斉にチェックする場合 >ごめんこれは何を言っているのかよくわからん。 これを理解できないのに、なんでインターフェースを語れるんだ?
268 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 02:09:32 ] 経験値不足な彼相手によくそこまで付き合ってあげられるなぁ。 ちょっと涙が出てきた。
269 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 02:55:17 ] >>264 >それはちょっとミスリードな言い方だな。 いや自動にできる >単にそれらの処理が書かれる場所がデータを所有するクラスからデータ自身のクラスに >変わるだけ、でしょ? データ自身のクラスに、そんな処理を書くわけないだろ 処理はデータ自身の基底クラスに記述 データ自身はそれを継承しているだけ だから自動でできる
270 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 02:58:57 ] 案の定いつも通りの流れでワロタ
271 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 03:01:59 ] そろそろTONさんバックレます また2週間くらい
272 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 03:10:32 ] >>230 読んでクラスのメンバフィールドの話をしてると思った人ってTimeOfNowの人意外にいるの?
273 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 03:34:59 ] 俺は入力フォームみたいのを作って実行する、データ自体には依存しない一般的な仕掛けを実装したいのかなと思った。
274 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 05:23:45 ] とりあえずTONのひとはコテハンかトリップでもつけてくれねぇかなぁ。
275 名前:TimeOfNow ◆g72UvIyAhI mailto:sage [2009/02/13(金) 05:41:07 ] トリ付けました。