こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

メソッドの作成基準について

現在、Webアプリを開発しているのですがメソッドを作成するにあたり
いつも悩むことが下記2点あります。
どういう基準で判断すればよいのでしょうか。
正解の判断基準ってあるのでしょうか。

1. メソッドをStatic なメソッドにするかインスタンスメソッドにするか。
2. メソッド内の処理に必要な数値を引数で取得するかセッションから取得するか。
 
2.についてはセッションから値を取得するようにすれば引数の無いメソッドが
できて便利かもと思ってはいるのですがこの考えは正しいのでしょうか。

投稿日時 - 2020-02-01 10:29:11

QNo.9707882

すぐに回答ほしいです

質問者が選んだベストアンサー

それはグローバル変数やメソッドの位置づけに依ります。
例えばPiのような確定している定数による処理をする事が決まっているメソッドであれば引数にするだけ無駄です。
一方で将来的に係数を変え汎用に使用する事を想定しているメソッドの場合、グローバル変数という単一の物に縛られる実装をするのは馬鹿げています。

投稿日時 - 2020-02-01 21:22:34

お礼

汎用使用するかどうかを考えながらメソッドを作成していきたいと思います。
ご回答ありがとうございました。

投稿日時 - 2020-02-02 01:11:24

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

1)staticなメソッド
staticなメンバー変数に対する処理を自クラスの全インスタンス共通で処理する必要がある場合

2)引数
メソッド自体の引数はなくしてもセッション参照のためにメソッド内部で引数を使用してますよね。
もしセッション参照の為に引数が使えなかったら、どうやってセッションを参照すると思いますか。

投稿日時 - 2020-02-01 14:19:33

補足

ご回答ありがとうございます。
2. の件ですが挙げた例が悪かったので訂正します。
もし、メソッドの中でグロバールスコープの変数を参照できる場合、
下記例のtest(), test2()のどちらの方式でメソッドを作るのが良いのでしょうか。
グローバルスコープで数値を取得できるのだからわざわざtest2()のように引数で
で与える必要はないと思うのですが、今まで、test2()のように引数で取得している
ようなコードを何度も見たことがあったので疑問に思い質問してみました。

function test() {
a = GLOBAL_NUM * 100;
b = GLOBAL_NUM2 * 200
}

function test2(var global_num, var global_num2) {
a = global_num * 100;
b = global_num2 * 200;
}

投稿日時 - 2020-02-01 19:32:07

あなたにオススメの質問