Ich habe einen Java TCP-Dienst, der Vererbung in der unten beschriebenen Weise verwendet. Der Java-Dienst verwendet Json als Eingabe, verarbeitet sie und gibt dann einen Json zurück. Die Verarbeitung ist auf Klassen wie B und C verteilt. A erstellt ihre Objekte und erledigt ihre Arbeit. Anstatt inputJson an B und C zu übergeben, habe ich die Container-Klasse gespeichert, so dass sie leicht von untergeordneten Klassen von Container verwendet werden kann.
Ich bin sicher, es gibt einen besseren Weg, um es neu zu gestalten. Bitte führen. (Anmerkung: In real, Es gibt mehr Klassen wie B, C und Behälter enthält mehr Eigenschaften, die von DOB1 verwendet werden() und DOC1() usw.)Java: Vererbung und grundlegende Design-Optimierung
//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
}
}
haben die Verarbeitungsmethoden in A, B, C usw. den gleichen Namen, Rückkehrtyp und Parameter? –
Verschiedene Namen, verschiedene Rückkehrtypen .. kein Polymorphismus. –
Ihr Code funktioniert nicht so, wie Sie es denken - die Erweiterung wird JSON nicht von A nach B und C kopieren, Sie müssen es trotzdem weitergeben. Ich schlage vor, Sie versuchen, mit grundlegenden Konzepten herumzuspielen und dann an Optimierung zu denken. – fdreger