Ho cercato di saperne di più sui modelli di progettazione leggendo Modelli di Enterprise Application Architecture di Martin Fowler. Mi sono imbattuto nel numero Table Data Gateway pattern e mi chiedevo come lo usi se hai operazioni che coinvolgono più tabelle?Come si utilizza il pattern di Gateway dati Table che coinvolge le relazioni uno-a-molti?
La mia comprensione è che ogni tavolo avrà una sua classe. Ogni classe avrà istruzioni SQL per accedere a una singola tabella, ma cosa succede quando alcune delle mie affermazioni si basano su altre tabelle?
Ecco un esempio concreto. Se ho una relazione uno-a-molti tra due tabelle, come Questions
e Choices
(domande a scelta multipla), e vorrei recuperare una domanda con tutte le sue scelte. Quindi avrei una classe QuestionGateway
con un metodo find()
ma avrei anche una classe ChoiceGateway
con un metodo findByQuestionId()
per recuperare tutte le scelte per la domanda?
Non avere qualche suggerimento su altri modelli che dovrei guardare? – Mikey
@Mikey sicuro. In nessun ordine particolare: Decoratore, Fabbrica, Costruttore, Fabbrica astratta, Inversione del controllo (non tecnicamente un modello, ma un concetto di progetto molto utile), Adattatore, Localizzatore di servizio e Pool di thread. Sono tutti molto utili. – Floegipoky