Quale modello di progettazione limita la creazione di classi di limiti a determinate classi

1

Ho un'applicazione abbastanza semplice divisa in due classi. La prima classe è la classe Manager e la seconda classe è la classe dipendente. Queste sono classi semplici e non ereditano da nessun'altra classe. Ora quello che voglio è impedire agli altri di creare un'istanza della classe del dipendente. La classe Manager ha un puntatore istanziato alla classe dipendente e controlla tutti i metodi della classe dipendente da lì. La mia prima idea è di mantenere il costruttore del dipendente come privato e mettendo il manager come suo amico. Ad esempio:

class employee
{
 friend class manager;
 private:
  employee()
  {
  }
}

class manager
{
  private:
  boost::shared_ptr<employee> emp;
  public:
  bar()
  {
    emp = boost::shared_ptr<employee>(new employee());
    //Now manager uses this pointer to control employee
  } 
} 

Questo è qualcosa che mi è venuto in mente, ma volevo sapere se c'era un modello di progettazione o un approccio migliore per raggiungere questo obiettivo. Il mio obiettivo è impedire agli altri di creare o utilizzare la classe dei dipendenti, l'unico svantaggio che vedo è esporre le variabili private della classe dipendente alla classe manager

    
posta MistyD 03.12.2014 - 23:59
fonte

1 risposta

1

Immagino che il modo in cui hai risolto il problema di avere un Costruttore privato potrebbe semplicemente soddisfare le tue necessità. Non vedo alcun modello di design creativo adatto a questo requisito, ma dovresti star bene senza uno qui.

    
risposta data 04.12.2014 - 00:03
fonte

Leggi altre domande sui tag