У меня есть модель данных на основе дерева. Мне нужно, чтобы показать это дерево на зрителе дерева и один из элементов дерева на зрителе элемента как такая схема:OOP GUI классы проектирования с MVC
tree viewer | element viewer:
Element A | There should be content from selected element (Element C).
-Element B |
-Element C |
(Selected)|
И зритель дерева и зритель элемент могут вносить изменения в модель.
Теперь я следующий код:
public class TreeNode{...};
public class AClass extends TreeNode{...};
public class BClass extends TreeNode{...};
public class CClass extends TreeNode{...};
public class Viewer{
...
//Specifies how to display data from a treeNode
public abstract void showModel();
...
};
public class AViewer extends Viewer{...};
public class BViewer extends Viewer{...};
public class CViewer extends Viewer{...};
public class Controller{
...
public void chooseViewer(TreeNode treeNode){
if (treeNode instanceof AClass) elementViewer = new AViewer(treeNode);
else if (treeNode instanceof BClass) elementViewer = new BViewer(treeNode);
else if (treeNode instanceof CClass) elementViewer = new CViewer(treeNode);
}
}
Как следует решить эту задачу правильно с точки зрения объектно-ориентированного программирования и MVC дизайн-шаблон?