J'apprends le pattern GRASP à l'école et j'ai une question sur le pattern Creator.Est-ce que GRASP Creator se découpe vraiment?
Disons que vous avez trois classes, Computer, UserRespository et utilisateur.
L'une des règles du modèle GRASP Creator vous demande d'attribuer la responsabilité de créer un objet à la classe contenant cet objet. En suivant cette directive, UserRepository devrait être le créateur de l'utilisateur.
Si l'ordinateur veut créer un utilisateur, il demandera UserRespository.
//in Computer's code
repo.createUser("John");
//in UserRepository
public void createUser(String name)
{
users.add(new User(name));
}
Cette découpler efficacement Computer de utilisateur. Vraiment?
Clairement, Ordinateur n'a aucune référence à l'utilisateur, mais je pense que l'ordinateur est encore fortement couplé à la création de l'utilisateur. Pourquoi? La méthode createUser masque mal la création. Si l'utilisateur change son constructeur, vous devrez changer la méthode createUser pour refléter ces changements et aussi chaque client utilisant la méthode.
Quels sont les avantages de l'utilisation de ce modèle?