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