Considerate due classi:
class A {
B* b_;
A(B* b){
b_ = b;
}
}
class B {}
B
è una classe che dovrebbe essere utilizzata solo all'interno di A
, quindi vorrei non per esporre la sua creazione a qualsiasi classe utilizzi A
. Inoltre, B
dovrebbe not essere creato ogni volta che è necessaria un'istanza di A
(ha un'inizializzazione lenta).
Dato che mi piacerebbe riutilizzare la stessa istanza di B
, ma non ho davvero bisogno di renderlo Singleton , potrebbe essere una buona idea creare una Factory che contiene un riferimento interno a un'istanza di B
?
Qualcosa come:
class Factory {
B* b_;
A* createA() {
if(b_ == NULL)
b_ = new B();
return new A(b_);
}
}
Il mio dubbio è che non trovo nulla di utile su google per "stateful factory" e forse trascuro qualche inconveniente in questo approccio.