这可能是一个奇怪的问题。
我正在设计一些代码......暂时看起来像这样:
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() 方法公开并被调用。
也许没有更好的方法。