Skip to content

Instantly share code, notes, and snippets.

@EgorBo
Last active July 14, 2021 23:50
Show Gist options
  • Select an option

  • Save EgorBo/34d6a6f5f07c4cbd218d33cb1b1e8504 to your computer and use it in GitHub Desktop.

Select an option

Save EgorBo/34d6a6f5f07c4cbd218d33cb1b1e8504 to your computer and use it in GitHub Desktop.
Classes.cs
using System;
public class ClassA
{
public virtual long GetValue() => 0;
}
public class ClassB : ClassA
{
long a = 42;
long b = 42;
public override long GetValue()
{
return a / b;
}
}
public class ClassAFactory
{
public virtual ClassA GetA() => null;
}
public class ClassBFactory : ClassAFactory
{
private static readonly ClassB ClassB = new();
public override ClassA GetA() => ClassB;
}
public class ClassBFactoryFactory : ClassAFactoryFactory
{
private static readonly ClassBFactory ClassBFactory = new();
public override ClassAFactory GetClassAFactory() => ClassBFactory;
}
public class ClassAFactoryFactory
{
public virtual ClassAFactory GetClassAFactory() => null;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment