Factory pattern in D

Rikki Cattermole via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri May 1 03:05:42 PDT 2015


On 1/05/2015 10:01 p.m., Chris wrote:
> What would be the D equivalent of the factory pattern? This obviously
> doesn't work:
>
> struct A {
>    int x = 42;
> }
>
> struct B {
>    int x = 7;
> }
>
> auto factory(string type) {
>    if (type == "A")
>      return A();
>    else if (type == "B")
>      return B();
>    else
>      return A();  // default
> }
>
> void main()
> {
>    auto a = factory("A");
> }
>
> Error: mismatched function return type inference of B and A
>
> (dmd 2.067.1)

Interfaces/classes not structs.


More information about the Digitalmars-d-learn mailing list