наследование - это отношения «есть»; Каков хороший способ обобщить отношения «интерфейс»? - Подводя итоги других отношений? - PullRequest
2 голосов
/ 03 августа 2011

Заголовок: наследование - это отношение «есть»; Каков хороший способ обобщить отношения «интерфейс»?

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

  • наследование = "is-a"
  • состав = "имеет-а"
  • реализация интерфейса =? ...

Ответы [ 5 ]

4 голосов
/ 03 августа 2011

Реализация интерфейса = "can-do"

Интерфейс обычно представляет одну возможность, которую вы можете реализовать в классе, например, в .NET интерфейс IEnumerable используется для классов, которые вы можете перечислить,и IComparable для классов, которые вы можете сравнить.

1 голос
/ 03 августа 2011

Ваши предикаты is-a и has-a описывают структурные отношения между различными типами.В этом смысле интерфейс должен также получить is-a.

Однако существует больше возможных таксономий, а также больше ключевых понятий:

  • Интерфейс - это контракт, который каждый исполнитель выполняет (обещает).
  • Связь между объектами может быть установлена ​​не только с помощью композиции, но и путем передачи объектов методам (использует-а) или с помощью сообщений определенного типа (уведомлений).
  • Целью наследования является не только полиморфность (кака) по-разному реализуя методы базового класса, а также добавляя новые функциональные возможности (свойства, методы) - (extends-a).
  • Роль объектов в приложении ООП можно классифицировать с помощью manages-a, создает-а, посещения-а, замены-а и т. д.
  • ...
1 голос
/ 03 августа 2011

почему не просто "реализует"?думаю, я не уверен, к чему ты клонишь.

0 голосов
/ 03 августа 2011

Интерфейс - это «вписывается» в отношения.

Подумайте об электрической розетке в вашей стене.Это ваш интерфейс к электрической сети.У вас может быть много объектов с таким интерфейсом (т.е. все они «вписываются» в сокет).

В других странах существуют разные интерфейсы, а также различные наборы объектов, которые «вписываются» в этисхем.

0 голосов
/ 03 августа 2011

Может быть «как-а» или «как-а»: подразумевается, что он обладает некоторыми свойствами / способностями, но не является прямым следствием.

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