Bref contexte : J'ai fait un clone de tetris en java (toutes les données et méthodes du jeu sont des classes) et je me demande si l'encapsulation est importante dans ce cas.
Presque tous les champs et méthodes sont marqués comme "par défaut", sans getters ni setters, car l'utilisateur n'est pas censé y accéder.
Les méthodes manipulent les variables directement sans passer d'arguments, bien sûr seulement si la chose qu'elles manipulent est unique (il ne peut pas y avoir deux pièces courantes, deux listes de blocs suivants, deux pièces retenues et ainsi de suite).
-
Ai-je vraiment besoin de getters et setters si l'utilisateur n'est jamais censé obtenir des membres bruts de la classe ? Les méthodes se contentent d'obtenir et de définir directement les valeurs. Si j'ai un simple int que je veux obtenir ou définir, je le fais directement.
-
Pas de valeur de retour, si une chose exacte est censée se produire à chaque fois. Par exemple : si une collision se produit pendant le spawning, gameOver() est déclenché immédiatement au lieu de retourner false, puis de le faire en dehors de la fonction. J'ai choisi de ne pas avoir de valeur de retour parce qu'il est beaucoup plus simple de le faire à l'intérieur de la fonction au lieu d'entourer chaque appel de fonction d'une déclaration if faisant la même chose.
Dois-je corriger certaines de ces choses, et comment le faire, en préservant la stabilité de la lisibilité et des performances ?