Ich versuche zu verstehen, was eine Verantwortlichkeit eigentlich ist, also möchte ich ein Beispiel für etwas verwenden, an dem ich gerade arbeite. Ich habe eine App, die Produktinformationen von einem System in ein anderes System importiert. Der Benutzer der Apps kann verschiedene Einstellungen für die Produktfelder in einem System auswählen, die im anderen System verwendet werden sollen.Helfen Sie, das Prinzip der einfachen Verantwortlichkeit zu verstehen
Also habe ich eine Klasse, sagen ProductImporter und es ist Aufgabe, Produkte zu importieren. Diese Klasse ist groß, wahrscheinlich zu groß.
Die Methoden in dieser Klasse sind komplex und würden zum Beispiel getDescription sein. Bei dieser Methode wird nicht einfach eine Beschreibung vom anderen System abgerufen, sondern eine Produktbeschreibung basierend auf verschiedenen vom Benutzer festgelegten Einstellungen erstellt. Wenn ich eine Einstellung und eine neue Möglichkeit hinzufügen würde, um eine Beschreibung zu erhalten, könnte sich diese Klasse ändern.
Also, sind das zwei Verantwortlichkeiten? Gibt es eines, das Produkte importiert und eines, das eine Beschreibung erhält? Es scheint so, fast jede Methode, die ich habe, wäre in einer eigenen Klasse und das scheint übertrieben zu sein.
Ich brauche wirklich eine gute Beschreibung dieses Prinzips, denn es ist schwer für mich, es komplett zu verstehen. Ich will keine unnötige Komplexität.
Es "zeigt einen Mangel an Design" - Das ist das Problem, dass ich nicht sicher bin, wie ich korrigieren soll. Wenn die Beschreibungsmethode zu der Klasse gehört und ich für jede Variation die verschiedenen Einstellungen berücksichtigen muss, wie kann ich sie sonst noch entwerfen? Ich sehe keinen anderen Weg. – user204588
Sie können eine Klasse Beschreibung haben, deren Aufgabe es wäre, die Variation zu behandeln. Und wenn eine einzelne Verantwortung zu groß ist, teilen Sie sie in kleinere Verantwortlichkeiten auf. –