Post

Inversion of Control (IOC). Don't call us, we'll call you.

Immagine
Inversion of Control  L' IoC è una tecnica di programmazione in cui le funzionalità di un software sono sviluppate in modo che invece di consistere in una serie di chiamate alle funzionalità del sistema, è il framework in cui sono usate a richiamare le funzionalità stesse.  Lo scopo dell'IoC è di migliorare la modularità e l'estendibilità, realizzando delle funzioni con un maggior grado di disaccoppiamento. Sorge un problema su come e quando debbano essere istanziati gli oggetti che devono essere utilizzati nel sistema, visto che adesso è il framework che ne invoca i metodi e non viceversa. A questo scopo sono state ideate diverse tecniche, di cui la principale è la dependency injection  (D.I.). Per alcuni versi l' IoC ha degli aspetti in comune con la D.I. , negli obiettivi che si prefigge, ma la D.I. ha come focus principale l'eliminazione della costruzione diretta degli oggetti ( service ) negli oggetti o nelle funzioni ( client ), che viene demandata all' i...

Functional programming

Immagine
 Programmazione funzionale La programmazione funzionale è un paradigma diverso da quello procedurale, in contrapposizione a quello procedurale (o imperativa) e a quello orientato ad oggetti. Premessa La programmazione procedurale prevede di solito la soluzione di un problema partendo da un set di dati (input), che poi attraverso l'esecuzione di una sequenza di azioni vengono trasformati in output. E' detta anche imperativa poiché consiste di una serie di ordini impartiti alla macchina da svolgere in un preciso ordine. Lo stato del programma cambia a seguito dell'esecuzione di ogni singolo comando (istruzione), per esempio perché si assegnano dei valori a delle variabili o si modificano elementi di strutture composte. La programmazione ad oggetti ha posto maggiore enfasi sullo stato del programma, consentendo di unire funzioni e dati in classi, in modo tale che ogni oggetto (istanza di una classe) abbia un proprio stato che può essere modificato per mezzo dei metodi pubbli...