J'ai étudié certains concepts OO, comme les modèles de conception, le code propre et d'autres choses et j'ai encore des doutes sur la façon de procéder. Par exemple, regardons mon exemple.Besoin d'aide pour la modélisation des classes
J'ai une classe Person qui est un modèle. Je veux ajouter quelques validations à une personne, comme vérifier si l'âge correspond à la date de naissance et vérifier si le nom contient des caractères valides.
J'ai deux approches, mais je ne sais pas laquelle je devrais utiliser.
approche un: -je créer une nouvelle classe appelée:
class ValidatePerson {}
et la classe ont les méthodes: « validateAge() » et « validateName() » et tous les vallidation que j'ai besoin, je vais avoir implémenter une nouvelle méthode.
approche en deux: -je créer une classe abstraite appelée: ValidatePerson {} qui aura des méthodes de commum à tous la validation et la i aurait:
class ValidatePersonAge extends ValidatePerson { validate();}
class ValidatePersonName extends ValidatePerson {validate();}
Je veux choisir pour une approche à deux, la cause chaque nouvelle règle de validation que je devrai ajouter sera une nouvelle classe et n'affectera pas les autres. Comme, si j'ai besoin de modifier quelque chose dans la méthode commum que la nouvelle règle a besoin, je pourrais juste l'écraser. Sur la première approche, je devrais ajouter une autre méthode et ensuite créer une autre méthode ou modifier celle qui fonctionne déjà pour les autres, qui pourrait faire plantage. La chose est que je suis un peu confus à tout cela, car je suis nouveau à la programmation et je voudrais voir de l'aide et des explications à ce sujet. J'ai aussi lu que les classes devraient être fermées pour changer, mais ouvertes pour l'expansion (ou quelque chose comme ça).
Ce que vous demandez ici n'est pas clair. À quoi exactement cherchez-vous de l'aide? – Oded