- - PR -
静的メソッドとインスタンスメソッド
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-09-01 11:33
板違いかもしれませんが、よろしくお願いいたします。
静的メソッドとするかインスタンスメソッドとするかの基準がわかりません。 インスタンスメソッドとしているものも 引数にインスタンス変数の情報をすべて渡してやれば静的メソッドとして定義できます。 まったくオブジェクト指向にそぐわないものだとは十分承知ですが クラスを一切使わず、インスタンスメソッドを関数として作成することも可能です。 私の考えではクラスとしてインスタンスメソッドを使用したいのですが Iさんの考えではメソッドを呼び出し側では1機能として1度呼び出すだけなのだから関数でよいと、関数を乱立されます。 Iさんを説得するインスタンスメソッドにするメリットをご教授ください。 [ メッセージ編集済み 編集者: 未記入 編集日時 2006-09-01 11:35 ] | ||||
|
投稿日時: 2006-09-01 11:41
これだけでは答えようがない。ケースバイケースなんだから。 一度呼び出すだけどうこうよりどこから呼び出されるか。 どれだけ汎用的なのか色んな要素があるでしょ。 | ||||
|
投稿日時: 2006-09-01 11:52
>Iさんを説得するインスタンスメソッドにするメリットをご教授ください。
Iさんって誰? (隣のよっちゃんがいじめるんだよーって言われても困る。) とりあえず、デザインパターンを色々見てみるといいかと。 | ||||
|
投稿日時: 2006-09-01 11:57
まず、なんのデータに対するどういう操作なのかが、あるはずですが。
String#valueOf(int) を、(何かメリットがあるにしても)インスタンスメソッドにしようとは、思わないし。 「メリット」と言われても、なんとも言えませんね…。 | ||||
|
投稿日時: 2006-09-01 11:58
ケースバイケースなのはわかりますが
静的メソッドにするのは呼び出す回数や使用頻度に影響されるものなのでしょうか? 汎用性がなければ静的メソッドにするのでしょうか? | ||||
|
投稿日時: 2006-09-01 12:07
あるログインユーザーに対してメソッドを3つ作成しようとしています。 3つのメソッドはログインIDを引数で受け取ります。 使用頻度はあるフォームのOpenでメソッド1を 同じフォームのCloseでメソッド2を 任意の場所(別プロジェクト)でメソッドを3を呼びます。 私の場合は ログインIDを引数にしたコンストラクタを作成し、メソッド3つはインスタンスメソッドにします。 | ||||
|
投稿日時: 2006-09-01 12:27
そんなものには影響されないでしょう。インスタンスを必要とするか、必要としないか。インスタンスと関連しないメソッドとして、デザイン上の不自然さは無いかが関わるんじゃないですか。 [ メッセージ編集済み 編集者: 甕星 編集日時 2006-09-01 12:33 ] | ||||
|
投稿日時: 2006-09-01 12:30
public メソッドなのか、private メソッドなのかでも話が変わってきますが、public の話をしているという前提で。
そのクラスが何を表しているかによるでしょうね。 と言うか、呼び出す回数や使用頻度だとか、上記の例もメソッド中心で話をしているから、オブジェクト指向になってない気がしますが。 例えばそれは何を表すクラスですか? _________________ 囚人のジレンマな日々 |