Это открытый вопрос, связанный с MVC, и я ищу критику и совет.
краткая версия: ViewA используется для просмотра ModelA.Если ModelB расширяет ModelA и ViewB используется для просмотра, ModelB будет ViewB наследовать от ViewA?
background:
Я создал класс Graph, содержащий массив вершин и массив ребер.Каждая из вершин имеет массив целочисленных данных размера n.
Я также создал класс GraphViewer для 2D-графиков, который просто рисует линии для ребер и точки для вершин.
Теперь я решилчтобы создать класс GraphEditor, то есть граф с возможностями редактирования, например, он должен иметь методы и поля, которые позволяют взаимодействие с пользователем: пример: selectVertex - метод, который принимает текущие coodinates мыши и возвращает вершину, ближайшую к этой точке, иselectedVertices - массив всех выбранных вершин
Я решил, что GraphEditor будет наследоваться от Graph.Поскольку GraphEditor по-прежнему является графиком только с возможностями редактирования.
Теперь я хотел создать GraphEditorViewer, который должен будет рисовать выбранные вершины другим цветом (например), и я подумал, поскольку GraphEditor расширяет Graph, возможно GraphEditorViewerрасширить GraphViewer, однако я считаю, что это не так, поскольку новый класс GraphEditorViewer не «просматривает» обычные графы.Поэтому я решил использовать отношение «есть» между GraphEditorViewer и GraphViewer.Это означало, что мне пришлось раскрыть много связанных с рендерингом методов GraphViewer, чтобы я мог вызывать их из нового класса.
Мне интересно, если бы вы пошли по-другому и что вы думаете о моем выборе.
Спасибо