Beaucoup de gens connaissent cet article: more on getters and setters. Je pense qu'il fait un travail convaincant de dépeindre le côté diabolique des getters/setters. Je l'ai également testé en essayant de convertir un projet existant (inachevé) en code sans getters/setters. Ça a marché. La lisibilité du code s'est grandement améliorée, moins de code et j'ai même réussi à me débarrasser des getters/setters où j'ai d'abord pensé qu'ils étaient vraiment nécessaires. Sauf pour un endroit.est-ce que les 'getters et setters sont mal' échouent pour le calque de vue?
Obtenir des modèles à la partie vue est l'endroit où je pense que cette approche manque le point. Dans l'article, l'auteur utilise un générateur pour exporter le modèle. Le problème est: il y a autant de contrôle sur ce qui est mis dans le constructeur que ce que vous auriez obtenu avec les getters. Oui, il cache l'implémentation, la façon dont elle est représentée dans le modèle. Mais les getters ne sortent pas du modèle quelque chose de très différent de ce qui a été mis là-dedans. Si vous créez un objet Money en passant '5' à travers le constructeur, money.getAmount() ne retournera pas ce converti dans une autre devise ou dans un tableau avec un élément '5' dedans.
Ce que vous définissez vous obtenez. Et à travers la vue, nous fixons des valeurs, et ces valeurs que nous attendons quand nous leur demandons (obtiennent) d'un objet qui est censé contenir ce que nous avons placé en premier lieu. Un constructeur pour exporter ces derniers attend la même chose.
C'est un peu long pour une question. Mais je voudrais être mis au défi à mon avis. Les getters et les setters sont-ils mauvais pour le transport de données de modèle vers la couche de vue?
Il y a beaucoup de gens qui pensent que les getters/setters ne sont pas mal du tout. Ce n'est pas non plus ce que je voudrais entendre défendre, car je pense qu'ils sont mauvais dans d'autres endroits que ceux que j'ai mentionnés.
Vous devriez voir le livre d'Alan Holub http://www.amazon.com/Holub-Patterns-Learning-Design-Looking/dp/159059388X Il dit beaucoup que les getters et setters sont mauvais et quand ils sont acceptables . Il montre beaucoup d'exaples, donc ce serait trop pour les écrire ici. –
Merci. Je vais y regarder. – koen