У меня есть базовый и производный класс, называемый Node, который формирует элементы Graph.
Я хотел бы определить DerivedGraph, который может хранить только DerivedNodes и может иметь некоторые определенные методы DerivedNode. Узлы должны быть изменяемыми в обоих классах.
Какова стандартная практика борьбы с этим?
Дублирование данных членов явно следует избегать.
Должно ли это быть сделано проверкой типа и приведением в свойствах?
public class Node {}
public class DerivedNode : public Node {}
public class Graph
{
private List<Node> nodes;
//some code
}
class DerivedGraph : Graph {}
EDIT:
Я должен добавить, что мне нужна функциональность, чтобы Graph мог содержать как узлы, так и DerivedNodes