これは奇妙な質問かもしれません。
私はいくつかのコードを設計しています...これは今のところ次のようになります:
abstract class MyAbstractObject {
String param ;
abstract void execute () ;
}
class MyObject1 extends MyAbstractObject {
String otherParam ;
void exectute() { // implementation } ;
}
class MyObject2 extends MyAbstractObject {
void exectute() { // other implementation } ;
}
class useMyObject {
void thisFunctionUsesMyObjects () {
MyObject1 obj1 = new MyOject1(param1, param2) ;
MyObject2 obj2 = new MyObject2(param1) ;
obj1.execute() ;
obj2.execute() ;
}
void thisFunctionToo () {
MyObject1 obj1 = new MyOject1(param3, param2) ;
MyObject2 obj2 = new MyObject2(param3) ;
// and we could have some more different MyObjectX as well...
MyObject3 obj3 = new MyObject3(param3) ;
MyObject4 obj4 = new MyObject4(param3) ;
// with an execution in another order
obj1.execute() ;
obj3.execute() ;
obj2.execute() ;
obj4.execute() ;
}
}
そのようなコードを実行するためのより良い方法があるかどうか疑問に思っています... thisFunctionUsesMyObjects() などの複数の関数を同時に実行できることを考えると(静的は解決策にはなりません)。
なぜ気になるのかわかりません...両方の MyObject(1,2) が常に同じ最初のパラメーターを持ち、両方とも execute() メソッドがパブリックで呼び出されているだけであるという事実だと思います。
たぶん、より良い方法はありません。