Uso errato delle fabbriche nelle librerie Java? [chiuso]

-1

Alcune delle librerie Java che ho usato finora sembrano avere una Factory per apparentemente ogni altra classe nella libreria. Il progetto Server FTP di Apache, ad esempio, fornisce una classe UserManagerFactory che consente di configurare un'istanza prototipica della classe UserManager e di creare copie di tale istanza, almeno presumo / osservo questo comportamento. Tuttavia, il modello Builder o Prototype non sarebbe più adatto per questo caso d'uso? Ho letto il libro dei disegni di design del GoF e sono abbastanza sicuro che usi le fabbriche se devi passare da una famiglia di gerarchie di classi correlate (possibilmente in fase di esecuzione).

Nei progetti che non si concentrano esclusivamente su Java, come le API di Google, vedo molte più classi di builder e mi chiedevo se esistesse una correlazione.

La domanda che sorge dalle mie osservazioni è: confondo questi schemi, non capisco appieno la struttura delle classi delle librerie o il nome di alcune librerie è davvero spento a volte?

    
posta Niklas Vest 19.11.2018 - 12:19
fonte

1 risposta

3

Do I confuse those patterns, do I not fully understand the libraries' class structure or is the naming in certain libraries really off at times?

I nomi di alcuni modelli sono sfortunatamente simili.

Il nome UserManagerFactory non mi dice se stanno utilizzando il modello Metodo di fabbrica o Modello di fabbrica astratto .

Il nome StringBuilder non mi dice se stanno utilizzando il modello Builder di GoF o pattern Builder di Joosh Bloch .

Tutto ciò che questi nomi ti danno è un suggerimento. Pochissimi chiamano con fiducia le loro classi dopo gli schemi usati all'interno. Dal momento che si tratta di un dettaglio di implementazione, in realtà non dovrebbero comunque. Il nome dovrebbe riflettere l'astrazione. Non esattamente come la magia è fatta.

    
risposta data 19.11.2018 - 13:21
fonte

Leggi altre domande sui tag