Simple, Double e Multi Dispatch in Java
Il polimorfismo
La programmazione ad oggetti si basa su alcuni concetti basilari quali ereditarietà, incapsulamento e polimorfismo. Il polimorfismo è uno dei concetti più complessi, soprattutto per chi proviene da un linguaggio di tipo procedurale o di tipo strutturato, in quanto utilizza un grado di astrazione nello sviluppo del software. Il polimorfismo rende possibile l’utilizzo di una serie di pattern, favorisce il riuso del software, il disaccoppiamento dei componenti e principalmente la determinazione a runtime dei comportamenti superando quei limiti imposti dai linguaggi monomorfici come il PASCAL.
Continua a leggere…
GoF Patterns: Template Method
Translate in English with Google Translate
In questo articolo tratterò il pattern Template
Motivazione
Si tratta di un pattern comportamentale basato su classi e viene utilizzato per definire la struttura di un algoritmo delegando alcuni passi di dettaglio alle sottoclassi.
Questo pattern nasce dall’esigenza di specificare l’ordine delle operazioni da effettuare ma di delegare alle sottoclassi l’implementazione di alcune operazioni. Pertanto il metodo che definisce l’algoritmo viene implementato nella superclasse mentre i metodi che definiscono i comportamenti di dettaglio vengono dichiarati astratti nella superclasse ed implementati nelle sottoclassi.
Continua a leggere…
GoF Patterns: Strategy
Translate in English with Google Translate
In questo articolo tratterò il pattern Strategy anche detto Policy
Motivazione
Si tratta di un pattern comportamentale basato su oggetti e viene utilizzato per definire una famiglia di algoritmi, incapsularli e renderli intercambiabili. Il client definisce l’algoritmo da utilizzare, incapsulandolo in un contesto, il quale verrà utilizzato nella fase di elaborazione. Il contesto detiene i puntamenti alle informazioni necessarie al fine della elaborazione, cioè dati e funzione: solita equazione y=f(x)!
Continua a leggere…
GoF Patterns: State
Translate in English with Google Translate
In questo articolo tratterò il pattern State anche detto Objects for States
Motivazione
Si tratta di un pattern comportamentale basato su oggetti che viene utilizzato quando il comportamento di un oggetto deve cambiare in base al suo stato. Questo pattern trova applicazione quando abbiamo a che fare con una “Macchina a Stati Finiti” ossia siamo in presenza di un sistema dinamico in cui i valori di ingresso, uscita e stato sono un insieme finito.
Continua a leggere…
GoF Patterns: Observer
Translate in English with Google Translate
In questo articolo tratterò il pattern Observer anche detto Dependents o Publish-Subscribe
Motivazione
Si tratta di un pattern comportamentale basato su oggetti che viene utilizzato quando si vuole realizzare una dipendenza uno-a-molti in cui il cambiamento di stato di un soggetto venga notificato a tutti i soggetti che si sono mostrati interessati. Continua a leggere…
GoF Patterns: Memento
Translate in English with Google Translate
In questo articolo tratterò il pattern Memento anche detto Token
Motivazione
Si tratta di un pattern comportamentale basato su oggetti che viene utilizzato quando si ha necessità di ripristinare lo stato di un oggetto ad un suo precedente stato. Ciò richiede di memorizzare gli stati pregressi di un oggetto per poterli eventualmente ripristinare.
Memento, in latino, vuol dire ricordare ed infatti l’obiettivo del pattern è quello di ricordare gli stati precedenti per poterli ripristinare all’occorrenza in un tempo successivo.
Continua a leggere…
GoF Patterns: Mediator
Translate in English with Google Translate
In questo articolo tratterò il pattern Mediator
Motivazione
Si tratta di un pattern comportamentale basato su oggetti e viene utilizzato per permettere lo scambio di messaggi tra diversi attori tramite un intermediario. In questo modo gli attori sono collegati indirettamente tramite un intermediario. Disaccoppiare gli attori consente di gestire meglio una serie di problematiche come: centralizzazione delle connessioni, modifiche più rapide, semplificazione dei protocolli.
Continua a leggere…