Сообщение Данные из корня иерархии от 15.09.2016 14:39
Изменено 15.09.2016 14:42 dmitry_npi
Добрый день.
Допустим, есть у меня дерево, его вершины — объекты классов NodeClass1, NodeClass2 ... и RootNodeClass. То есть, например, класс RootNodeClass может создать у себя детей типа 1 и 2, в свою очередь NodeClass1 может иметь детей типа 1, 3, 4, ну и так далее в самых разных комбинациях.
И допустим, один из классов, NodeClassX, нуждается в данных, которые есть в корневой вершине, но его "предкам" эти данные не нужны.
Как правильно их туда передать?
Следует ли тащить эти данные через цепочку конструкторов? Тогда получится, что большинство классов будут тащить как бы лишний параметр в конструкторе.
Допустим, есть у меня дерево, его вершины — объекты классов NodeClass1, NodeClass2 ... и RootNodeClass. То есть, например, класс RootNodeClass может создать у себя детей типа 1 и 2, в свою очередь NodeClass1 может иметь детей типа 1, 3, 4, ну и так далее в самых разных комбинациях.
И допустим, один из классов, NodeClassX, нуждается в данных, которые есть в корневой вершине, но его "предкам" эти данные не нужны.
Как правильно их туда передать?
Следует ли тащить эти данные через цепочку конструкторов? Тогда получится, что большинство классов будут тащить как бы лишний параметр в конструкторе.
Данные из корня иерархии
Добрый день.
Допустим, есть у меня дерево, его вершины — объекты классов NodeClass1, NodeClass2 ... и RootNodeClass. То есть, например, класс RootNodeClass может создать у себя детей типа 1 и 2, в свою очередь NodeClass1 может иметь детей типа 1, 3, 4, ну и так далее в самых разных комбинациях.
И допустим, один из классов, NodeClassX, нуждается в данных, которые есть в корневой вершине, но его "предкам" эти данные не нужны.
Как правильно их туда передать?
Следует ли тащить эти данные через цепочку конструкторов? Тогда получится, что большинство классов будут тащить как бы лишний параметр в конструкторе.
Update:
В каждой вершине есть свойство Parent, однако оно заполняется после конструирования, тогда как данные из корня требуются уже в конструкторе класса NodeClassX.
Может быть, сделать так, чтобы конструкторы всех типов вершин обязательно требовали ссылку на предка?
Допустим, есть у меня дерево, его вершины — объекты классов NodeClass1, NodeClass2 ... и RootNodeClass. То есть, например, класс RootNodeClass может создать у себя детей типа 1 и 2, в свою очередь NodeClass1 может иметь детей типа 1, 3, 4, ну и так далее в самых разных комбинациях.
И допустим, один из классов, NodeClassX, нуждается в данных, которые есть в корневой вершине, но его "предкам" эти данные не нужны.
Как правильно их туда передать?
Следует ли тащить эти данные через цепочку конструкторов? Тогда получится, что большинство классов будут тащить как бы лишний параметр в конструкторе.
Update:
В каждой вершине есть свойство Parent, однако оно заполняется после конструирования, тогда как данные из корня требуются уже в конструкторе класса NodeClassX.
Может быть, сделать так, чтобы конструкторы всех типов вершин обязательно требовали ссылку на предка?