Factory pattern for classes
lexxn
aleksandar.m.nikolov at gmail.com
Sun Aug 9 09:16:46 UTC 2020
I'm trying to get the factory pattern going with classes
class A {}
class B {}
class C {}
auto getClassById(uint id)
{
if (id == 0) {
return cast(A)Object.factory("A");
} else if(id == 1) {
return cast(B)Object.factory("B");
} else {
return cast(C)Object.factory("C");
}
}
I'm getting 2 errors:
main.d(69): Error: Expected return type of main.A, not main.B:
main.d(67): Return type of main.Ainferred here.
Also is it possible to completely skip the getClassById function
and if I've and array string classes = ["A", "B"] to just
cast(classes[0])Object.factory(classes[0]);. I understand that I
need to cast classes[0].
More information about the Digitalmars-d-learn
mailing list