Сообщение Re: Зависимости между классами и интерфейсами от 15.09.2020 12:12
Изменено 15.09.2020 12:14 Qulac
Re: Зависимости между классами и интерфейсами
Здравствуйте, AlexRK, Вы писали:
ARK>Приветствую.
ARK>Мой вопрос может показаться довольно странным, абстрактным и/или нелепым, но я хотел бы услышать мнения.
ARK>В мейнстримовых языках программирования разрешены произвольные взаимодействия между классами и интерфейсами — класс А может иметь поле типа "класс Б", и одновременно в классе Б может быть поле типа "класс А". То же самое с интерфейсами. То есть — все может зависеть от всего, везде разрешены циклы. Это, насколько мне известно, не считается чем-то предосудительным и часто используется.
Циклическая зависимость означает, что мы не можем использовать эти типы раздельно друг от друга, может им тогда лучше в месте быть или выделить что-то общее в отдельный тип.
ARK>Вопрос у меня таков: насколько сильным вы считаете запрет на любые циклы в графе классов и интерфейсов?
Он не нужен.
ARK>С двумя важными дополнениями/исключениями:
ARK>1) Класс/интерфейс может использовать сам себя (то есть можно создать связанный список или дерево).
ARK>2) Запрет на циклы — только на уровне объявлений. То есть физически цикл создать можно, передав объект через, скажем, генерик-параметр. Но сами объявления циклическими быть не могут. (В расте все наоборот — объявления можно делать циклическими, но физически циклы без unsafe запрещены.)
ARK>Насколько плоха такая организация классов/интерфейсов в виде дерева, без циклов?
По мне это не нужно.
ARK>Приветствую.
ARK>Мой вопрос может показаться довольно странным, абстрактным и/или нелепым, но я хотел бы услышать мнения.
ARK>В мейнстримовых языках программирования разрешены произвольные взаимодействия между классами и интерфейсами — класс А может иметь поле типа "класс Б", и одновременно в классе Б может быть поле типа "класс А". То же самое с интерфейсами. То есть — все может зависеть от всего, везде разрешены циклы. Это, насколько мне известно, не считается чем-то предосудительным и часто используется.
Циклическая зависимость означает, что мы не можем использовать эти типы раздельно друг от друга, может им тогда лучше в месте быть или выделить что-то общее в отдельный тип.
ARK>Вопрос у меня таков: насколько сильным вы считаете запрет на любые циклы в графе классов и интерфейсов?
Он не нужен.
ARK>С двумя важными дополнениями/исключениями:
ARK>1) Класс/интерфейс может использовать сам себя (то есть можно создать связанный список или дерево).
ARK>2) Запрет на циклы — только на уровне объявлений. То есть физически цикл создать можно, передав объект через, скажем, генерик-параметр. Но сами объявления циклическими быть не могут. (В расте все наоборот — объявления можно делать циклическими, но физически циклы без unsafe запрещены.)
ARK>Насколько плоха такая организация классов/интерфейсов в виде дерева, без циклов?
По мне это не нужно.
Re: Зависимости между классами и интерфейсами
Здравствуйте, AlexRK, Вы писали:
ARK>Приветствую.
ARK>Мой вопрос может показаться довольно странным, абстрактным и/или нелепым, но я хотел бы услышать мнения.
ARK>В мейнстримовых языках программирования разрешены произвольные взаимодействия между классами и интерфейсами — класс А может иметь поле типа "класс Б", и одновременно в классе Б может быть поле типа "класс А". То же самое с интерфейсами. То есть — все может зависеть от всего, везде разрешены циклы. Это, насколько мне известно, не считается чем-то предосудительным и часто используется.
Циклическая зависимость означает, что мы не можем использовать эти типы раздельно друг от друга, может им тогда лучше в месте быть(объединить в один тип) или выделить что-то общее в отдельный тип.
ARK>Вопрос у меня таков: насколько сильным вы считаете запрет на любые циклы в графе классов и интерфейсов?
Он не нужен.
ARK>С двумя важными дополнениями/исключениями:
ARK>1) Класс/интерфейс может использовать сам себя (то есть можно создать связанный список или дерево).
ARK>2) Запрет на циклы — только на уровне объявлений. То есть физически цикл создать можно, передав объект через, скажем, генерик-параметр. Но сами объявления циклическими быть не могут. (В расте все наоборот — объявления можно делать циклическими, но физически циклы без unsafe запрещены.)
ARK>Насколько плоха такая организация классов/интерфейсов в виде дерева, без циклов?
По мне это не нужно.
ARK>Приветствую.
ARK>Мой вопрос может показаться довольно странным, абстрактным и/или нелепым, но я хотел бы услышать мнения.
ARK>В мейнстримовых языках программирования разрешены произвольные взаимодействия между классами и интерфейсами — класс А может иметь поле типа "класс Б", и одновременно в классе Б может быть поле типа "класс А". То же самое с интерфейсами. То есть — все может зависеть от всего, везде разрешены циклы. Это, насколько мне известно, не считается чем-то предосудительным и часто используется.
Циклическая зависимость означает, что мы не можем использовать эти типы раздельно друг от друга, может им тогда лучше в месте быть(объединить в один тип) или выделить что-то общее в отдельный тип.
ARK>Вопрос у меня таков: насколько сильным вы считаете запрет на любые циклы в графе классов и интерфейсов?
Он не нужен.
ARK>С двумя важными дополнениями/исключениями:
ARK>1) Класс/интерфейс может использовать сам себя (то есть можно создать связанный список или дерево).
ARK>2) Запрет на циклы — только на уровне объявлений. То есть физически цикл создать можно, передав объект через, скажем, генерик-параметр. Но сами объявления циклическими быть не могут. (В расте все наоборот — объявления можно делать циклическими, но физически циклы без unsafe запрещены.)
ARK>Насколько плоха такая организация классов/интерфейсов в виде дерева, без циклов?
По мне это не нужно.