我有一个Java服务,它具有以下方式使用的继承。Java服务以Json作为输入,对其进行处理,然后返回Json。处理分布在像B和C这样的类中,A创建它们的对象并完成它们的工作。我没有将inputJson传递给B和C,而是将它存储在容器类中,以便容器的子类能够很容易地使用它。
我相信有更好的方法来重新设计它。请指点。(注意:在现实中,有更多的类,如B、C和容器包含更多doB1()和doC1()等使用的属性)
//Pseudo
Class Main(){
public static void main(String[] args)
{
return new A().a1(inputJson);
}
}
Class Container{
JsonNode input;
JsonNode output;
}
Class A extends Container{
private JsonNode a1(inputJson)
{
input = inputJson;
B bObject = new B();
bObject.doB1();
C cObject = new C();
cObject.doC1();
return output;
}
}
Class B extends Container{
public void doB1()
{
//prepares and updates part of output using input
}
}
Class C extends Container{
public void doC1()
{
//prepares and updates part of output using input
}
}发布于 2017-01-04 08:10:02
也许这就是您所要寻找的,它消除了您需要的单个容器超类。使用它可以像C.process(B.Process(A.create()));一样简单
当然,您需要确保每个类都返回一个JsonNode,但是该功能似乎已经存在,可以看到您的容器。
interface Processor {
public JsonNode process(JsonNode input);
}
Class A {
public JsonNode create() {...}
}
Class B implements Processor {
public JsonNode process(JsonNode input) {
// logics
return output;
}
}
Class C implements Processor {
public JsonNode process(JsonNode input) {
// logics
return output;
}
}https://stackoverflow.com/questions/41458815
复制相似问题