Considérez cet exemple:
J'ai un site Web. Il permet aux utilisateurs de créer des messages (peut être n'importe quoi) et d'ajouter des balises qui décrivent le message. Dans le code, j'ai deux classes qui représentent le message et les balises. Appelons ces classes Post
et Tag
.
Post
s'occupe de créer des posts, de supprimer des posts, de mettre à jour des posts, etc.
Tag
s'occupe de créer des tags, de supprimer des tags, de mettre à jour des tags, etc.
Il manque une opération. La liaison des balises aux messages. Je me bats avec qui devrait faire cette opération. Il pourrait tout aussi bien s'intégrer dans l'une ou l'autre classe.
D'une part, la Post
classe pourrait avoir une fonction qui prend a Tag
comme paramètre, puis la stocke dans une liste de balises. D'un autre côté, la Tag
classe pourrait avoir une fonction qui prend un Post
comme paramètre et lie le Tag
au Post
.
Ce qui précède n'est qu'un exemple de mon problème. En fait, je rencontre cela avec plusieurs classes qui sont toutes similaires. Il pourrait tout aussi bien convenir aux deux. À moins de mettre la fonctionnalité dans les deux classes, quelles conventions ou quels styles de conception existent pour m'aider à résoudre ce problème. Je suppose qu'il doit y avoir autre chose que d'en choisir un?
Peut-être que le mettre dans les deux classes est la bonne réponse?