gpt4 book ai didi

Java : Inheritance and Basic Design Optimization

转载 作者:行者123 更新时间:2023-12-01 09:03:43 25 4
gpt4 key购买 nike

我有一个 Java TCP 服务,它具有以下方式使用的继承。Java Service 将 Json 作为输入,对其进行处理,然后返回一个 Json。处理分布在 B 和 C 等类之间。A 创建它们的对象并完成它们的工作。我没有将 inputJson 传递给 B 和 C ,而是将其存储在 Container 类中,以便 Container 的子类可以轻松使用它。
我确信有更好的方法来重新设计它。请指导。(注意:实际上,有更多的类,如 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
}
}

最佳答案

也许这就是您正在寻找的,它消除了您需要的单个 Container 父类(super class)。使用它可以像 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;
}
}

关于Java : Inheritance and Basic Design Optimization,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41458815/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com