Зависимости между классами и интерфейсами
От: AlexRK  
Дата: 15.09.20 11:36
Оценка:
Приветствую.

Мой вопрос может показаться довольно странным, абстрактным и/или нелепым, но я хотел бы услышать мнения.

В мейнстримовых языках программирования разрешены произвольные взаимодействия между классами и интерфейсами — класс А может иметь поле типа "класс Б", и одновременно в классе Б может быть поле типа "класс А". То же самое с интерфейсами. То есть — все может зависеть от всего, везде разрешены циклы. Это, насколько мне известно, не считается чем-то предосудительным и часто используется.

Вопрос у меня таков: насколько сильным вы считаете запрет на любые циклы в графе классов и интерфейсов?

С двумя важными дополнениями/исключениями:
1) Класс/интерфейс может использовать сам себя (то есть можно создать связанный список или дерево).
2) Запрет на циклы — только на уровне объявлений. То есть физически цикл создать можно, передав объект через, скажем, генерик-параметр. Но сами объявления циклическими быть не могут. (В расте все наоборот — объявления можно делать циклическими, но физически циклы без unsafe запрещены.)

Насколько плоха такая организация классов/интерфейсов в виде дерева, без циклов?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.