Я видел аргументы в пользу использования явных интерфейсов в качестве метода блокировки использования классов для этого интерфейса. Кажется, что аргумент состоит в том, что, заставляя других программировать на интерфейсе, вы можете обеспечить лучшую развязку классов и облегчить тестирование.
Пример:
public interface ICut
{
void Cut();
}
public class Knife : ICut
{
void ICut.Cut()
{
//Cut Something
}
}
А для использования объекта Нож:
ICut obj = new Knife();
obj.Cut();
Вы бы порекомендовали этот метод реализации интерфейса? Почему или почему нет?
EDIT:
Кроме того, учитывая, что я использую явный интерфейс, следующее НЕ будет работать.
Knife obj = new Knife();
obj.Cut();