У меня есть 3 класса с одинаковым интерфейсом:
cppTopicGenerator : TopicGenerator
phpTopicGenerator : TopicGenerator
javaTopicGenerator : TopicGenerator
И я создал для них фасад, где я пытаюсь использовать их, как показано ниже:
public class MyFacade
{
private readonly List<TopicGenerator> generators;
public void BusinessLogic(string extension)
{
MyParser(extenstion).generate();
}
private TopicGenerator MyParser(string extension)
{
foreach (var generator in generators)
{
if (generator.Accept(extension))
{
return generator;
}
}
throw new NotFoundException($"Generator for {extension} doesnt exist.");
}
}
вопросэто, как должен был создать этот список генератора?Мне нужно вручную создать список всех генераторов, например:
private readonly List<TopicGenerator> generators = new List(
{
new CppTopicGenerator()
new PhpTopicGenerator()
new JavaTopicGenerator()
});
Или возможно их как-то автоматически внедрить?