Sono abbastanza nuovo nella progettazione di programmi di grandi dimensioni in C ++. Sto scrivendo serie di operazioni, ognuna delle quali ha una propria classe, che verrà invocata dalla classe ProcessMgr
.
Sto usando ProcessMgr
come classe di interfaccia, da cui è possibile richiamare ogni operazione:
class ProcessMgr
{
private:
class OperationOne;
class OperationTwo;
class OperationThree;
}
class ProcessMgr::OperationOne
{
public:
...
};
class ProcessMgr::OperationTwo
{
public:
...
};
class ProcessMgr::OperationThree
{
public:
...
};
Questo mi consente di controllare i tipi di accesso alle classi Operation
, quindi non esponendo gran parte del loro codice sottostante.
È importante che l'utente di questo codice possa interagire solo con le classi Operation
in modi specifici e non avere accesso completo a tutti i contenuti delle classi Operations
.
Le mie domande:
1) È un buon approccio alla progettazione di programmi di grandi dimensioni? La maggior parte delle librerie, come CURL, sono strutturate in questo modo?
2) Esistono metodi migliori / più efficienti per separare l'interfaccia e l'implementazione?