Обычно лучше написать что-то вроде этого:
void method(IFile file) {
file.DoYourThing();
}
чем
void method(ContentType id) {
switch (id) {
case ContentType.Audio:
file.DoThis();
break;
case ContentType.Video:
file.DoThat();
break;
}
}
Это потому, что переключатели обычно становятся кошмаром обслуживания с течением времени, и это также подвержено ошибкам.
Моя рекомендация заключается в том, что когда вам нужны цепочки switches
или if-else
, вам следует рассмотреть возможность добавления метода в уже существующую иерархию классов или создания новой. Вы должны стремиться писать код, похожий на тот, который вы видите в первом фрагменте кода.
Как обычно, это общее, поэтому оно может не относиться к вашей конкретной проблеме.