rap*_*ura -1 java class instance
我有一个简单的场景.我想在下面创建一个新类的实例.
class A implements Fancy {
void my() {
Fancy b = // new X(); where X could be A or B
}
}
Run Code Online (Sandbox Code Playgroud)
如果你有一个B实现Fancy.
abstract class AbstractFancy使用create方法创建:
abstract class AbstractFancy implements Fancy {
abstract Fancy create();
void my() {
Fancy b = create();
//....
}
}
Run Code Online (Sandbox Code Playgroud)
在每个类中实现该create方法:
class A extends AbstractFancy {
Fancy create() {
return new A();
}
}
class B extends AbstractFancy {
Fancy create() {
return new B();
}
}
Run Code Online (Sandbox Code Playgroud)