Jbrick-Java
 Framework Java
 Java code generation
 Java ed Open Source
 Il BPM open source
 Imparare Java
 jBrick newsletter

 

Framework, librerie e design pattern
Differenza tra framework, libreria, design pattern
Perchè usare un framework java
Framework e librerie: differenze

Un framework java è un insieme di classi e interfacce di base che costituisce un’architettura generica per lo sviluppo di applicazioni in una determinata area tecnologica (java).

Utilizzare un framework java non significa però utilizzare un insieme di librerie di classi. Una libreria di classi è utilizzata dallo sviluppatore per svolgere determinate funzionalità; il codice dello sviluppatore invoca il codice della libreria, ma il controllo del flusso applicativo rimane a carico dello sviluppatore.

Quando si utilizza un framework java, invece, lo sviluppatore implementa interfacce o estende classi del framework java, ma il controllo del flusso applicativo è a carico del framework java.

Quindi il codice applicativo dello sviluppatore non è direttamente invocato dall’intervento dell’utente sul sistema, ma il flusso elaborativo passa attraverso il codice del framework: sono le classi del framework che invocano il codice applicativo dello sviluppatore e non viceversa come quando si utilizza una libreria di classi.


 

Differenza tra framework e design pattern

Un design pattern è una strategia di soluzione di un problema comune; è qualcosa di concettuale che prescinde dall’implementazione tecnologica. Un framework è invece qualcosa di concreto, un’architettura generica per lo sviluppo di applicazioni costituita da componenti che, quando il framework è ben strutturato, sono sviluppati secondo i design pattern più diffusi nell’ambito specifico.

Perché utilizzare un framework

Ci sono importanti motivi per l’utilizzo di un framework:


1. Disegno architetturale solido
Utilizzare un buon framework java significa dotare il progetto di fondamenta solide e testate su cui partire.


2. Riduzione dei tempi di progetto
Lo sviluppatore deve implementare solo la logica applicativa, non dovendosi più preoccupare di realizzare componenti infrastrutturali; lo sviluppatore inoltre può tranquillamente ignorare la complessità dell’Object Model implementato nei diversi package integrati nel framework java.

3. Semplificazione dello sviluppo
Un buon framework java semplifica lo sviluppo applicativo perché fornisce tutta una serie di componenti che risolvono la gran parte dei compiti comuni a tutte le applicazioni web J2EE (controllo del flusso, logging, gestione messaggi di errore, internazionalizzazione, validazione dei dati…); inoltre il framework garantisce l’isolamento, per incapsulamento, di questi componenti proteggendoli da un loro utilizzo improprio da parte dello sviluppatore inesperto.


4. Standard nell’implementazione dei servizi applicativi di base
Utilizzando un framework uno sviluppatore che realizza un servizio applicativo di base deve, generalmente, o estendere classi concrete o astratte del framework, oppure implementare interfacce del framework. Questo consente di ottenere uno standard nell’implementazione dei servizi di base e uniformità nello sviluppo dei servizi anche da parte di sviluppatori diversi.

 

 

Caratteristiche framework

Affinché un framework sia valido è necessario che abbia determinate caratteristiche:


1. Adozione degli standard

Un framework deve essere fondato sui componenti standard della tecnologia di riferimento e i servizi che mette a disposizione dello sviluppa tore devono essere quanto più realizzati facendo riferimento ai design-pattern e alle “best pratictises” relative alle attività che devono svolgere.


2. Estensibilità

Un framework, per sua stessa natura, è generico dovendo rappresentare un’architettura generale su cui costruire le proprie applicazioni; è necessario dunque che il framework sia estendibile per poterlo adattare alle proprie esigenze.


3. Documentazione

E’ necessario che un framework sia dettagliatamente documen tato, per semplificarne l’utilizzo e renderne comprensibile il funzionamento nel caso il framework debba essere esteso.