【发布时间】:2016-10-29 05:42:09
【问题描述】:
我有基于树的数据模型。我需要在树查看器上显示它的树,并在元素查看器上显示其中一个元素树,如下所示:
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);
}
}
从 OOP 和 MVC 设计模式的角度来看,应该如何正确解决这个任务?
【问题讨论】:
标签: java oop model-view-controller architecture class-design