Dopo la pubblicazione dell’introduzione di questa serie, la mia preoccupazione principale è stata quella di stabilire quale metodo adottare per la presentazione di ciascun singolo pattern e dei fondamenti dell’Object Oriented Analysis and Design (OOAD). L’obiettivo che mi sono posto è quello di facilitare l’apprendimento di concetti che, fino a questo momento, vengono ritenuti ostici dalla maggior parte degli sviluppatori.
Ho pensato che il modo migliore per mantenere la lettura user friendly è snellire la trattazione dei concetti mediante l’utilizzo di linee guida comuni a ciascun pattern. Per facilità di esposizione, una breve descrizione di tali linee guida verrà riportata su ogni episodio della serie.
Descrizione del pattern
Durante questa trattazione, ciascun pattern verrà descritto attraverso le seguenti linee guida:
- Classificazione di appartenenza. A quale categoria appartiene il pattern trattato (tra creazionale, strutturale o comportamentale);
- Obiettivo. Quale particolare problema il pattern si pone l’obiettivo di risolvere;
- Applicabilità. Per quali situazioni il pattern può essere applicato? Come riconoscere queste situazioni?
- Partecipanti. Le classi, gli oggetti e le interfacce partecipanti e le loro singole responsabilità;
- Collaborazioni. Come i partecipanti collaborano per rispettare le proprie responsabilità;
- Conseguenze. Pro e contro dell’applicazione del pattern;
- Struttura. Attraverso una rappresentazione grafica standard, denominata Unified Modeling Language (UML), si illustrano gli oggetti partecipanti e la loro collaborazione;
- Implementazione. L’implementazione generica in linguaggio PHP del pattern;
- Case Study. Uno scenario che illustra un problema di progettazione e applica il pattern per risolverlo. Quando possibile, verrà riportata l’implementazione del pattern all’interno del core di Laravel 5;
- Testing del pattern. Dato uno scenario di esempio, vedremo alcune nozioni base sulla correlazione fra Test Driven Development (TDD) e pattern;
Buona lettura!