Каково поведение при повторном указании интерфейса, уже реализованного базовым классом - PullRequest
0 голосов
/ 11 мая 2010

С учетом следующего кода:

public interface IExample { ... }
public abstract class BaseExample: IExample { ... }

public class ExampleA : BaseExample { ... }
public class ExampleB : BaseExample, IExample { ... }

Есть ли какие-либо преимущества или недостатки в написании кода, такого как ExampleB?

Я предполагаю, что повторное указание IExample в производном классе ExampleB является излишним. Я ошибся? Я думал, что производные классы неявно наследуют все интерфейсы, реализованные их базовыми типами?

В настоящее время мы пишем такие вещи, как ExampleB, но меня начинает беспокоить, насколько многословными становятся некоторые реализации наших производных классов. Другой разработчик говорит, что это хорошо, потому что он лучше объявляет намерения класса и делает код более читабельным. Но для меня это становится грязным.

1 Ответ

0 голосов
/ 11 мая 2010

Да, будет избыточно.

Еще одна вещь, с которой вам следует быть осторожным, это то, что когда одна реализация начнет реализовывать множество интерфейсов, это, скорее всего, повредит принципу единой ответственности. Трудно сказать, когда / если это так, и это также сильно зависит от интерфейсов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...