In uno scorso articolo avevamo introdotto il concetto di pattern nell’ambito della programmazione ed avevamo fatto un esempio concreto con “Iterator“, questa volta continuiamo definendone altri due, “Singleton” e “Class Replacement“. Come avevamo visto la volta scorsa non esistono dei vincoli molto rigidi riguardo al formato della descrizione di un pattern, quindi anche in questo caso utilizzeremo quella vista in precedenza.
I pattern che ormai sono considerati dei veri e propri classici nella programmazione object-oriented e si possono classificare in tre grandi categorie:
Veniamo quindi alla strutturazione del pattern Singleton:
Ecco un esempio di utilizzo:
class Singleton {
private:
static pWnd* m_pWnd;
protected:
Singleton();
public:
static pWnd* getInstance();
long f1();
int f2();
}
Singleton::Singleton() {}
Singleton* Singleton::getInstance()
{
if (!m_pWnd)
m_pWnd = CreateWindow(….);
return m_pWnd;
}
Questo è un esempio di come implementare la finestra principale di un’applicazione. Il prossimo pattern che prenderemo in esame è il Class Replacement, ecco la sua struttura:
Un pattern simile a quest’ultimo è Abstract Factory che però non considera il caso in cui il nome della classe debba essere specificato esternamente all’applicazione.
Ho voluto scrivere un altro articolo sui pattern, perché li ritengo molto importanti per l’omogeineità di sviluppo che si deve avere nel mondo della programmazione e questa volta ho voluto più che altro inserire due casi pratici molto importanti.
MerciGest è il software gestionale gratuito per Windows che semplifica la gestione del magazzino: giacenze,…
Tutti i nostri software gestionali possono essere collegati a un database SQL Server, consentendo l’accesso…
MerciGest è semplice e immediato: basta scaricare e installare il programma per iniziare subito. Al…
MerciGest è un gestionale di magazzino per Windows pensato per negozi, piccole imprese e artigiani…
La Standard Template Library (STL) è una delle componenti più potenti del C++. Fornisce una…
Sono arrivato alla convinzione che un abbonamento per tutti i miei software gestionali sia il…