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.
Sono arrivato alla convinzione che un abbonamento per tutti i miei software gestionali sia il…
MerciGest è un software per la gestione del magazzino completamente gratuito. Continua a leggere→
In ufficio può capitare di doversi allontanare dal proprio posto di lavoro, ecco che allora…
In questo articolo vedremo quando è più o meno utile togliere la corrente ad un…
Dopo la pausa invernale dovuta al lavoro che devo fare per sostentarmi, eccomi di nuovo…
Vediamo come eliminare i files direttamente da Windows senza utilizzare il cestino. Continua a leggere→