Design Patterns (Java) - I "Fantastici" Quattro (GoF)

Categoria:

lezioni private

.   |   Articolo scritto da:

elnath78

.

GANG OF FOUR, DESIGN PATTERNS

Forse chi si trova a dover superare questo esame pratico è troppo giovane per ricordare la famosa pubblicazione da cui sono tratti i pattern richiesti. Nell'ormai lontano 1995 (ottobre 1994), questi quattro autori hanno identificato 23 patterns utili alla soluzione di problemi specifici. Suddivisi in 3 distinte categorie; Creational, Structura e Behavioral. Nella programmazione ad oggetti un pattern è un modello logico, un’insieme di strumenti atti alla soluzione di un problema specifico, in grado di essere riutilizzato in altri progetti aventi le stesse necessità e semplificando notevolmente la complessità del codice.

Per superare questo esame viene di solito chiesta, a rotazione casuale, l'implementazione di alcuni specifici patterns per la risoluzione dei problemi proposti. E' sicuramente indispensabile conoscere bene la programmazione in linguaggio Java (o qualsiasi altro linguaggio in cui dobbiamo sviluppare) perché questo ci aiuta a ricordare come è composto il singolo pattern. Esistono fondamentalmente due possibili approcci; imparare a memoria, oppure capire cosa stiamo facendo e perché. entrambe le soluzioni possono essere valide, sebbene imparare a memoria non sia mai la cosa più indicata, in questo caso, trattandosi talvolta di pattern obsoleti e superati potrebbe essere utile, dato che nella vita pratica difficilmente ci serviranno.

La soluzione migliore tuttavia si è dimostrata, proprio come il pattern Builder ci insegna, la separazione dell'apprendimento logico da quello pratico. Il primo è fondamentale che sia perfettamente memorizzato, questo significa che per ciascun pattern dovremmo ricordare da quali elementi è composto per poterlo poi replicare. E' invece importante capire cosa stiamo facendo, senza memorizzare, per poter implementare la parte pratica, la programmazione vera e propria. Se infatti i pattern ci forniscono uno schema, questo andrà necessariamente adattato al problema specifico, e non è possibile memorizzare quello che ancora non conosciamo, ma soltanto il concetto logico, lo schema appunto da cui il pattern è composto.

Preparatevi un piano di studio, imparate quindi i pattern secondo un ordine logico seguendo l'originaria suddivisione, non ha senso infatti imparare pattern di differenti gruppi tra cui non vi sia una sinergia, meglio allora imparare prima tutti i pattern Creational e poi passare agli altri in ordine logico. Fondamentale è fare pratica con esempi molto semplici, anche banali, che ci permettono di focalizzare l'attenzione sulla logica e non sul codice necessario allo sviluppo; studiare con un esempio troppo complesso non ci permette di concentrarci sulla logica del pattern e ci fa perdere di vista il nostro reale obbiettivo.