Concorrenza in Java: Thread, Executor e Fork/Join

19 giugno 2013 Commenti disabilitati

Thread, Executor e Fork/Join
La concorrenza è la capacità di eseguire in parallelo una parte o diverse parti di un programma. Nei moderni computer forniti di diverse CPU o diversi CORE è possibile sfruttare la parallelizzazione dei processi. Ciò consente di impiegare al meglio l’hardware in nostro possesso, di ridurre il tempo di elaborazione e di servire un numero sempre più elevato di utenze. Il miglioramento dell’esecuzione può essere valutato in base alla legge di Amhdal da cui si ricava che il massimo ricavo lo si ottiene ottimizzando il processo più frequente.
Leggi tutto…

Annunci
Categorie:java

GoF Patterns: Visitor

Translate in English with Google Translate
In questo articolo tratterò il pattern Visitor

Motivazione
Si tratta di un pattern comportamentale basato su oggetti e viene utilizzato per eseguire delle operazioni sugli elementi di una struttura. L’utilizzo di questo pattern consente di definire le operazioni di un elemento senza doverlo modificare.
Ma com’è possibile?
Non mi riferisco alla tecnica di decorazione, trattata in un articolo precedente, ma mi riferisco ad un’altra tecnica di “arricchimento” del codice. Leggi tutto…

Categorie:GOF Pattern, java

Simple, Double e Multi Dispatch in Java

28 novembre 2012 7 commenti

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.
Leggi tutto…

Categorie:GOF Pattern, java

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.
Leggi tutto…

Categorie:GOF Pattern, java

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)!
Leggi tutto…

Categorie:GOF Pattern, java

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.
Leggi tutto…

Categorie:GOF Pattern, java

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. Leggi tutto…

Categorie:GOF Pattern, java