Использование явных интерфейсов для обеспечения программирования с интерфейсом - PullRequest
8 голосов
/ 07 октября 2008

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

Пример:

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();

Ответы [ 11 ]

0 голосов
/ 07 октября 2008

Если клиентский код не заботится ни о чем, кроме факта, что он может использовать объект для Cut() вещей, тогда используйте ICut.

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