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

このエントリーをはてなブックマークに追加
106デフォルトの名無しさん
ところで値を返す関数の名前は名詞にしたほうがいいと思うが、getってつける人が多いな。
式の途中にget(動詞)があると読んでてキモくない?
じゃあgetsにすればいい
>>106
プロパティは名詞、メソッドは動詞だろ。
そのルールを破られたほうがよっぽどキモい。
>>108
ふーん。そうなのか。
たぶんJavaのルールだと思うんだけど、そのルールの根拠は説明できる?
プロパティは値そのものを返す
メソッドは操作結果を返す
JavaのルールってかUMLのルールだな
プリミティブ操作関係のクラスは普通に名詞も使う
>>109
Javaにプロパティなんて無い。Javaはアホみたいにget/setしてるだろ。
C#やDelphiなんかの文法レベルでプロパティをサポートしている言語共通のルールだ。

>>110
プロパティの実体は値を保持する変数である必要は無い。
何かの操作・計算結果でも構わない。
int Right
{
 get{ return Left + Width; }
}
113106:04/07/30 02:57
>>112
あー>>108を誤読してたよ。
普段C++使うんで、勝手に「プロパティ→データメンバ」、「メソッド→メンバ関数」と対応付けて読んでた。

漏れが問いたかったのは、たとえばSTLコンテナのsize()を、
「関数だから動詞」というルールでget_size()としてしまうことの是非。
>>113
厳密に言えばおかしいから多少ウザくてもget付けるべきだけど
プロパティという概念を関数で実装していて
ライブラリ全体に命名規則の一貫性があるならあり。
ただしsetterとの整合性が取れなくなるので相当変。
int size(); void set_size(int value);
かといってこれも変だし。
int size(); void size(int value);

つかスレ違い
オペレータ
void size=(int value);
>>114
多少ウザくてもget付ける利点は何?
>>116
可読性や明確さよりも、厳格なルールと、ルールに従うことを重要視するのが、Java流のネーミングだから。
>>116
setterとの整合性って書いてあるだろ。
void set_size(int value);
int get_size();

getを付けないと
void set_size(int value);
int size();

でバランスが悪い
void resize(int value);
int size();
>>117
そんな形骸化したルールなんて従いたくないもんだな。

>>118
なんで set_size が前提になってんの?
size/resize ならいいの?
ついでに、 size/set_size でも悪くないと思う。
>>120
>なんで set_size が前提になってんの?
>size/resize ならいいの?
だからプロパティという概念を軸に発想しろっての
お前はあらゆるプロパティのsetterに適切な動詞が存在するとでも思ってるのか?
color, name, width, object1_ptr, object2_ptr, object3_ptr, ....

>ついでに、 size/set_size でも悪くないと思う。
気にならないのはお前の趣味の問題で
(set/get, 名詞/動詞のルールの)一貫性が損なわれているのは間違いないだろ。

いつまでも馬鹿なこといってないでプロパティのある言語で10万行くらいコード書いてみろ。

つかスレ違い