Моя кодовая база имеет несколько различных классов c (например: FooIO, BarIO), в которых есть идентичные методы. Единственное различие в функциональности между этими методами - это объект конфигурации (например, Foo, Bar) и имя файла.
Я вытащил фактическую реализацию методов в обобщенный c класс, называемый BaseIO.
В каждом классе IO у меня есть конструктор stati c, который создает экземпляр BaseIO с соответствующим классом и fileName:
static FooIO()
{
configIO = new BaseIO<Foo>("Foo.xml");
}
и для всех методов, которые я вызываю этот экземпляр:
public static void Save(Foo config)
{
configIO.Save(config);
}
Тем не менее, между классами ввода-вывода по-прежнему существует довольно много дублирующегося кода, поскольку все, кроме конструктора, идентично. существующие зависимости?