Задать вопрос
@Venesuella
BlackJack и ...

Часто ли вы используете интерфейсы?

Здравствуйте! Разбираюсь с темой интерфейсов, задавая вопрос "для чего, зачем нужны интерфейсы", часто получал ответ для слабой связанности компонентов/заменяемости компонентов, для лучшего тестирования. И вопрос такой часто ли вы окружаете интерфейсами свои слои приложения, или еще что то? Часто ли у вас было что ваши репозитории окруженные интерфейсами используют MSSQL, и есть еще такие же репозитории но уже использующие к примеру MongoDB, и где нито вы подменяете одно другим? Часто ли у вас было что у вас есть 2 разных слоя сервисов, окруженных интерфейсами, и опять же вы один подменяете другим? Такое реально возможно, если вряд ли, либо вероятность мала, получается интерфейсы в основном используются для тестирования, чтобы можно было использовать моки? Так ли, разъясните, разжуйте, приведите реальные примеры, очень хочу в теме разобраться
  • Вопрос задан
  • 927 просмотров
Подписаться 4 Оценить 5 комментариев
Ответ пользователя Михаил К ответам на вопрос (7)
Milk92
@Milk92
.NET
Я отталкиваюсь от понимания полиморфизма.. то есть многообразия форм объекта (интерфейсной ссылки). Об этом написано в любой книге по языку C# и по любому другому языку с парадигмой ООП..
Тут самому нужно понимать когда его использовать..
Например если у вас не один источник а два.. то нужно разработать API которое дает методы, работы с данными независимо от источника..
То есть:
public interface IDataAccess{
void Connection();
void BeginTransaction();

}
public class MySqlDal:IDataAccess{
      public void Contection(){
         //TODO implement method!
    }
     public void BeginTransaction(){
       //TODO implement method!
    }
}
public class MsSqlDal:IDataAccess{
      public void Contection(){
         //TODO implement method!
    }
     public void BeginTransaction(){
       //TODO implement method!
    }
}

А дальше уже использовать так:
public IDataAccess mySqlDal = new MySqlDal();
public IDataAccess msSqlDal = new MsSqlDal();

понимаю, что грубый пример но как то вот так.
Ответ написан
Комментировать