È stata data una sfida di design scomoda e non sono sicuro di come gestirlo al meglio.
Lo scenario è questo: nel sistema c'è un concetto di "Cliente". Ogni client ha vari bit di metadati di supporto come il nome del contatto, il settore aziendale e così via.
Il sistema fa due cose. Prende le prenotazioni contro ogni cliente e riporta sul business in quelle prenotazioni.
Un client, tuttavia, è diverso. Ha un sacco di uffici regionali - oltre 100 in tutto, che è circa cinque volte il numero di altri client nel sistema. Ai fini delle prenotazioni, dobbiamo trattare ogni ufficio come un cliente separato. Ai fini della segnalazione, dobbiamo trattarli come un singolo cliente.
Naturalmente, se necessario, posso occuparmene mettendo un altro se / e ogni volta che viene menzionato un client. Ma sarà brutto e difficile da mantenere. Parte di questo tipo di logica è inevitabile, ma mi piacerebbe ridurlo al minimo.
Alcuni di essi possono essere spinti nell'oggetto Client stesso, che almeno lo mantiene in un posto. Ma mi ha fatto riflettere: questo non può essere uno scenario raro. Esistono architetture preesistenti o modelli di progettazione che potrebbero essere d'aiuto?