Question

Dans mon projet personnel, j'ai essayé de m'en tenir à MVC, mais j'ai également été informé que s'en tenir à MVC trop serré peut être une mauvaise chose car il rend l'écriture maladroite et force le flux du programme de manière étrange (c'est-à-dire un peu simple Les fonctions peuvent être exécutées par quelque chose qui ne le ferait normalement pas et éviter les frais généraux liés à MVC).

Je commence donc à me sentir justifié dans ce compromis:

J'ai des «programmes de gestion tous les deux Une partie du modèle, et une partie du contrôle, et pour moi, cela semble plus naturel que de garder leur séparation. Par exemple: l'un de mes managers est le playerCharacterManager qui a ces méthodes:

void buySkill(PlayerCharacter playerCharacter, Skill skill);
void changeName();
void changeRole();
void restatCharacter();
void addCharacterToGame();
void createNewCharacter();
PlayerCharacter getPlayerCharacter();
List<PlayerCharacter> getPlayersCharacter(Player player);
List<PlayerCharacter> getAllCharacters();

J'espère que les noms de Mothod sont suffisamment transparents pour qu'ils n'aient pas tous besoin d'expliquer.

Je l'ai appelé un gestionnaire car cela aidera à gérer tous les objets «modèle» de playerCharacter que le code crée, et en créer et en conserver une carte. Je peux également faire stocker d'autres informations à l'avenir.

J'ai l'intention d'avoir deux autres classes similaires pour ce type de contrôle, mais je vais orchestrer quand et comment cela se produit, et quoi faire avec les données retournées via une classe de contrôleur pure. Ce contrôle de séparation entre les gestionnaires informés et le contrôleur, par opposition à fonctionner juste via un contrôleur, semble simplifier mon code et le faire couler davantage.

Ma question est: est-ce un choix dangereux, en termes de rendez le code plus difficile à suivre / tester / corriger? Est-ce que quelque chose est établi comme bon ou mauvais ou neutre? Je ne trouve rien de similaire, sauf l'idée des acteurs, mais ce n'est pas tout à fait pourquoi j'essaie de faire.

Éditer: Peut-être qu'un exemple est nécessaire; J'utilise le contrôleur pour mettre à jour la vue et accéder aux données, donc lorsque je clique sur le «nouveau caractère nouveau à un bouton de lecteur», il appellera des méthodes dans le contrôleur qui vont ensuite dire à la classe PlayerCacterManager pour créer un nouveau personnage Par exemple, il appellera la classe PlayManager pour ajouter ce nouveau personnage à la carte du joueur-personnage, puis il ajoutera ces informations à la base de données, et indiquera à la vue pour mettre à jour toutes les GUIS effectuées. C'est le type de «séquence de contrôle» que j'espère créer avec ces classes de gestionnaire.

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
scroll top