いくつかのパラメーターを受け取る関数があります。
コードをより見やすく維持しやすくするために、関数の一部を同じクラスの別の関数にアウトソーシングしたいと考えています。
この新しい関数には、元の関数と同じパラメーターが必要です。この関数のすべてのパラメーターを明示的に記述する代わりに、一度に (もちろん同じ順序で) 渡す方法はありますか?
いくつかのパラメーターを受け取る関数があります。
コードをより見やすく維持しやすくするために、関数の一部を同じクラスの別の関数にアウトソーシングしたいと考えています。
この新しい関数には、元の関数と同じパラメーターが必要です。この関数のすべてのパラメーターを明示的に記述する代わりに、一度に (もちろん同じ順序で) 渡す方法はありますか?
3 つまたは 4 つを超えるパラメーターがある場合は、それらをオブジェクトにカプセル化し、パラメーター自体の代わりにそれを渡します。
だから、代わりに
void someMethod(String name, int age, double salary, char gender);
私は使うだろう
void someMethod(person);
人がこのようなものである場合(あなたはアイデアを得る)
class Person {
String name;
int age;
double salary;
char gender;
}
Java の var args について読んでください。これがあなたが探している解決策だと思います。ここに小さな例があります: http://docs.oracle.com/javase/1.5.0/docs/guide/language/varargs.html
DTO design pattern
関数に渡されるパラメーターが 3 つ以上ある場合に使用します。
DTO
-> Data transfer object
. 必要なすべてのパラメーターのオブジェクトを作成し、それをメソッドに渡します。
新しいクラスを作成したくない場合は、HashMap を使用してください。
試す
public void myMethod(Object... params){
// method body
}
その後
myMethod(param1,param2,param3);
また
myMethod(param1,param2,param3,param4)
3 つのドットは、可変数のパラメーターを渡すことを意味します。このリンクを確認してください http://java.sun.com/docs/books/tutorial/java/javaOO/arguments.html#varargs