[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 05/09 21:46 / Filesize : 165 KB / Number-of Response : 567
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

クラス名・変数名に迷ったら書き込むスレ。Part14



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/

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 ]
トリ付けました。

276 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 05:42:01 ]
>>274
フルボッコされると自演乙とか言っちゃう人だから、まぁ無理でしょ

277 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 05:44:00 ]
TONが「ました」
なんて言う訳が無い

278 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 09:00:15 ]
>>273
「普通」はそうとしか取れないよな

279 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 13:48:04 ]
年度末、年度初めって何かある?
startNendoOfYearとかベタなのしかおもいつかんw

280 名前:279 mailto:sage [2009/02/13(金) 13:49:40 ]
ああ、ごめん年度開始月と、年度末月でした。
startMonthOfNendoとか、endMonthOfNendoとかしか思い浮かばない・・

281 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 14:02:28 ]
>>280
それでいいじゃん。何か不満なの?

282 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 16:04:55 ]
Nendo -> FiscalYear (会計年度)
Nendo -> BusinessYear (事業年度)
Nendo -> AcademicYear, SchoolYear (学校年度)

283 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 18:59:25 ]
of yearっているの?
ToN!

284 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 20:13:55 ]
>>267
いや、「<コントロールに>Required属性が必要」というのはやはり意味不明に聞こえる。
コントロール、に?

前半の話は理念的に美しいのは認めるが、現実解としてはやはり間違いだと思う。
>>230のような話は、ベタにやった方がずっと早くわかりやすく書ける。

>>269
それ自分で言ってることの意味がわかって言ってるの?



285 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 20:22:21 ]
>>284
スレ違いの話題いいかげんにしろや池沼

286 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 20:25:25 ]
>>284
>前半の話は理念的に美しいのは認めるが、現実解としてはやはり間違いだと思う。
なら汚いスパゲッティコードしか書けてないんだろ

object指向ならあらゆる処理を行うコードが、それぞれまとまっているわけだが?
int.ToString();
string.Substring(0, 0);
datetime.AddDays(0);
そしてintなどには未入力であることを示すプロパティが無いから、
自前で実装しておきたい需要は普通にあるだろ。
それこそ機能を作っておいて>>269の言うとおり継承するだけでいいんだから
そのほうが簡単で確実だし可読性も良い。

お前の言う方法だと、いちいちその都度、Customerクラスを専用に作り直さなければ
ならないので遅いし、クラスによって実装が異なるから分かりにくく可動性に欠ける。


287 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 20:44:50 ]
>>286
いきなりお前呼ばわり?

まあいいけど、既に書いたとおり、>>230のような情報は本来「データを所有しているクラス」
が知っているべきことであって、データそのものに属する情報じゃない。
OOP云々いうのなら、こういう「意味論的なおかしさ」にも敏感になってよ。

それだけでなく、年齢(普通ただの数値であることを期待するだろう)が、「必須項目かどうか」
を年齢自体に持たせるために、本来ただの数値で済むものに専用型を導入するわけ?

int age = Customer.Age.Value;
みたいなまどろっこしいことを強制されるわけ?
策に溺れてるじゃん。

それと、その継承の使い方はおかしいと思うよ。
継承って「見たくないコード」を隠すために使うものなの?
違うと思うけど。

288 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 20:47:41 ]
>>287
暗黙の型変換ができればいい。

289 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 01:22:06 ]
>287
継承の使われ方は結果論であって、
親クラスがその責務をもつのが妥当かって話で
その観点からは個人的にはアリだと思うけど。
まどろっこしいかどうかは言語によっても変わるだろうし。

でもお二人ともスレ違いだしそろそろやめたら?


290 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 02:04:47 ]
>>287
そこで暗黙の型変換使わないでどうするの?
もう少し知識を揃えようね。

それにオブジェクト指向の根本が見たくないものを隠すからなってるだろが。

291 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 02:12:27 ]
o(・_・= ・_・)o キョロキョロ

292 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 02:18:46 ]
Webアプリだと普通にベストプラクティスの一つだと思うけどな。
それを「少なくとも一理ある」だの「正直あまり同意できない」だの、どんだけ言い訳まみれの人生なんですかw

293 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 02:44:55 ]
>>1
>命名規則や設計の善し悪しについて議論するのは基本的に禁止。

294 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 06:12:10 ]
>>238の時点でブッチギリにスレ違いなのに、何をいまさらw



295 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 11:35:18 ]
所持数とか使用数みたいな
変数名はいまだに悩む


296 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 19:23:01 ]
結局残るのはTimeOfNowを肯定する人間は一人も現れないと言う事実のみ






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<165KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef