Мне нужно создать перегрузки для функций в существующем интерфейсе, не затрагивая компоненты, которые в настоящее время реализуют или используют интерфейс (в идеале).
Я полагаю, у меня есть несколько вариантов:
Упрощенная
Оригинальный интерфейс:
public interface IServerComponent
{
bool Add(int a, int b);
}
Я могу добавить новые перегруженные функции к интерфейсу и заставить каждый класс, реализующий интерфейс, реализовать новые функции.
public interface IServerComponent
{
bool Add(int a, int b);
bool Add(int a, int b, int c);
}
Или я могу создать новый интерфейс, который реализует оригинальный интерфейс. Тогда другие классы, использующие оригинал, не нужно будет менять, и любые новые классы смогут реализовать новый интерфейс ...
public interface IServerComponent2 : IServerComponent
{
bool Add(int a, int b, int c);
}
Какая лучшая практика в этой ситуации? Есть ли другие доступные варианты?
Спасибо