Ich habe ein paar OO-Konzepte, wie Design-Muster, sauberen Code und einige andere Sachen studiert, und ich habe immer noch einige Zweifel darüber, wie Sie vorgehen. Schauen wir uns beispielsweise mein Beispiel an.Brauchen Sie Hilfe mit Klassen Modellierung
Ich habe eine Person-Klasse, die ein Modell ist. Ich möchte einer Person einige Validierungen hinzufügen, z. B. prüfen, ob das Alter mit dem Geburtsdatum übereinstimmt, und prüfen, ob der Name gültige Zeichen enthält.
Ich habe zwei Ansätze, aber ich weiß nicht, welchen ich verwenden sollte.
Ansatz ein: ich eine neue Klasse namens:
class ValidatePerson {}
und die Klasse die Methoden haben: „validateAge()“ und „validateName()“ und jedes vallidation, die ich brauche ich haben eine neue Methode implementieren.
Ansatz zwei: ich eine abstrakte Klasse genannt: ValidatePerson {}, dass einige commum Methoden für alle Validierung haben und die ich hätte:
class ValidatePersonAge extends ValidatePerson { validate();}
class ValidatePersonName extends ValidatePerson {validate();}
ich Ansatz zwei wählen möchten, Ursache Jede neue Validierungsregel, die ich hinzufügen muss, ist eine neue Klasse und beeinflusst die anderen nicht. Wenn ich zum Beispiel etwas in der Kommunikationsmethode ändern muss, die die neue Regel benötigt, könnte ich sie einfach überschreiben. Beim ersten Ansatz müsste ich eine andere Methode hinzufügen und dann eine andere Methode erstellen oder die ändern, die bereits für die anderen funktioniert, die dann zum Absturz bringen könnte.
Die Sache ist, dass ich irgendwie verwirrt bin, da ich neu im Programmieren bin und ich möchte etwas Hilfe und Erklärung darüber sehen. Ich habe auch gelesen, dass Klassen für Änderungen geschlossen werden sollten, aber offen für die Erweiterung (oder so ähnlich).
Es ist nicht klar, was Sie hier fragen. Was _exactly_ suchen Sie mit Hilfe? – Oded