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.