Erklär vielleicht mal, wofür genau du eigentlich die abstract Factory zu brauchen meinst, dann können wir uns evtl. eine Lösung überlegen...
Das hab ich ja mit meinem letzten Beitrag zu erklären versucht. Es geht mir darum, dass ich die Instanziierung der Klassen kontrollieren will. Wir haben Klassen, die nur dann instanziierbar sein sollen, wenn zum Zeitpunkt der Instanziierung ein Hardware-Key am System hängt. D.h. die Instanziierung ist dann nicht mehr einfach
|
C-/C++-Quelltext
|
1
|
return new Class(args);
|
sondern
|
C-/C++-Quelltext
|
1
|
return runtime_check(check_value) ? new Class(args) : nullptr;
|
oder so was in der Richtung. Wie gesagt. Das ist derzeit noch so simpel, dass man dafür wohl keine Hierarchie bräuchte (z.B. lässt sich die unchecked Instanziierung ja auch mit dem zweiten Fall abdecken, indem man den check_value so wählt, dass der Check immer true zurückgibt), aber es ist ja durchaus denkbar, dass da noch mehr Instanziierungs-Strategien aufkommen, die ich dann unkompliziert integrieren können möchte.
Und da ist es eben schön, wenn ich das alles in der Factory kapseln kann und der Client einfach Factory::create(args) callen kann und nicht wissen muss, was unter der Haube alles abläuft.