Considera questo esempio:
Ho un sito web. Permette agli utenti di creare post (può essere qualsiasi cosa) e aggiungere tag che descrivano il post. Nel codice, ho due classi che rappresentano il post e i tag. Consente di chiamare queste classi Post
e Tag
.
Post
si occupa di creare post, eliminare post, aggiornare post, ecc.
Tag
si occupa di creare tag, eliminare tag, aggiornare tag, ecc.
C'è una operazione che manca. Il collegamento dei tag ai post. Sto lottando con chi dovrebbe fare questa operazione. Potrebbe adattarsi ugualmente bene in entrambe le classi.
Da una parte, la classe Post
potrebbe avere una funzione che accetta un Tag
come parametro e quindi la memorizza in un elenco di tag. D'altra parte, la classe Tag
potrebbe avere una funzione che accetta un Post
come parametro e collega il Tag
a Post
.
Quanto sopra è solo un esempio del mio problema. In realtà mi sto imbattendo in questo con più classi che sono tutte simili. Potrebbe adattarsi ugualmente bene in entrambi. A parte mettere le funzionalità in entrambe le classi, quali convenzioni o stili di progettazione esistono per aiutarmi a risolvere questo problema. Suppongo che debba esserci qualcosa a parte solo sceglierne uno?
Forse metterlo in entrambe le classi è la risposta corretta?