Il Singleton è un design pattern creazionale che ha lo scopo di garantire che di una determinata classe venga creata una e una sola istanza, e di fornire un unico punto di accesso globale a tale istanza.
Nella programmazione ad oggetti (OOP), il Singleton è considerato uno dei pattern fondamentali.
L'implementazione più semplice di questo pattern prevede che la classe singleton abbia un unico costruttore privato, in modo da impedire l'istanziazione diretta della classe.
La classe fornisce inoltre un metodo getter statico che ritorna sempre la stessa istanza della classe, creandola preventivamente o alla prima chiamata del metodo, e memorizzandone il riferimento in un attributo privato anch'esso statico.
Come esempio da esporre, ho riutilizzato alcuni diagrammi UML creati per la progettazione di una cache singleton, appunto: si tratta della classe MASingletonCache.
Questo primo diagramma, meglio caso d'uso o use case, chiarisce il contesto iniziale del progetto, requisiti e scelte risolutive, che hanno determinato successivamente la scelta dell'implementazione del suddetto componente singleton.
Mi spiace per la freccia di include che non è stata completamente inclusa nell'immagine, comunque ha inizio dal caso d'uso Deve gestire accessi concorrenziali e termina all'attore Binary Safe Read and Write Methods.
Nel prossimo diagramma UML, definito di classe, viene rappresentato nel dettaglio il componente, con le sue proprietà e i suoi metodi, e si potranno apprezzare sia l'architettura con cui è costruito sia tutti i requisiti richiesti dal design pattern singleton.
Alla prossima,
MA
domenica 10 gennaio 2010
UML: Design Pattern Singleton
Etichette:
UML
Iscriviti a:
Commenti sul post (Atom)
0 commenti:
Posta un commento
Non ti è chiaro qualcosa?
No problem, posta il tuo dubbio ;)
..... e ricordati di firmarlo!