Objets et structures de données – Coder proprement

Les objets exposent un comportement et masquent les données. Il est ainsi facile d’ajouter de nouvelles sortes d’objets sans changer les comportements existants. Mais il est également plus difficile d’ajouter de nouveaux comportements à des objets existants.

Les structures de données exposent des données et n’ont pas de comportement significatif. Il est ainsi facile d’ajouter de nouveaux comportements à des structures de données existantes, mais difficile d’ajouter de nouvelles structures de données à des fonctions existantes.

Dans un système, nous avons parfois besoin d’une souplesse d’ajout de nouveaux types de données et choisissons alors une implémentation fondée sur des objets. Si nous voulons disposer d’une souplesse d’ajout de nouveaux comportements, alors, nous optons pour les types de données et les procédures.

Si on a des objets hybrides contenant des accesseurs et mutateurs publics ainsi que des opérations alors c’est que l’on a un problème de conception.

Ne pas utiliser de fonctions chaînées tel que :
final String outputDir = ctxt.getOptions().getScratchDir().getAbsolutePath();