Есть программа, в которой я использую ссылки на интерфейсы. Грубо говоря. У меня есть интерфейс IRoom
, в которой есть интерфейс ITableList
, с методами взаимодействия со столами, в котором есть интерфейс ITable
со всеми свойствами стола.
Это интерфейс Позиций
Это интерфейс Список позиций взаимодействия с Позициями
Это интерфейс всего, там же и есть взаимодействие со Списком позиций
Это код взаимодействия sec - ISecurity, Positions - IPositionList, GetLast.... - IPosition
Под каждым интерфейсом скрывается какая-то конкретная реализация, в которой и определены необходимые методы. Например:
interface IFoo
{
IBar Bar { get;set; }
// прочие свойства и методы
}
class Foo : IFoo
{
public IBar Bar { get; set; }
}
var foo = new Foo();
// здесь мы присваиваем свойству Bar переменную класса Bar, в котором
// уже определены все методы, указанные в интерфейсе IBar
foo.Bar = new Bar();
Есть такая штука, Принцип инверсии зависимостей - про него можно легко нагуглить. Интерфейсы являясь абстракцией и помогают реализовывать этот принцип. Используя интерфейсы программу можно сделать более гибкой и легко тестируемой. Интерфейс это контракт - он гарантирует, что класс реализующий его будет содержать описанные в интерфейсе методы - так что вся реализации интерфейсов находится непосредственно в классах. Ну как это делается, вам уже в соседнем ответе рассказали. Не буду повторяться. То что вы поняли под ссылкой на интерфейс - это просто конструкция языка, подразумевающая, что в этом поле будет хранится ссылка на любой класс реализующий этот интерфейс.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Здравствуйте! Сейчас пытаюсь написать 3d бродилку, руководствуясь этой статьей
Привет, Я писал тестовый фильтр который должен возвращать мне данные в ng-repeat