【发布时间】:2014-03-14 13:56:56
【问题描述】:
我正在实现自己的基本 MVC 框架,并且我有一个类似图形的视图,它显示了一堆点,如散点图。这是一个简化的版本:
public class GraphView extends View
{
private List<Point2D> points;
//view code
public void setPoint(int index, float x, float y)
{
points.get(index).setLocation(x,y);
}
public int getNumPoints()
{
return points.size();
}
}
我还有一个视图,它将此视图用作带有一些额外控件的子视图,其中一个是一个按钮,用于随机化图形视图上的点。
public class GraphControlsView extends View
{
private GraphView graph;
private JButton randomizeButton;
//view code
//called by the button
public void randomize()
{
for(int i = 0; i < graph.getNumPoints();i++)
{
graph.setPoint(i,Math.random(),Math.random());
}
}
}
我想知道这是否是逻辑在图表视图上随机化点的正确位置。似乎我混合了视图和控制器的职责,并且这个逻辑应该驻留在控制器中。但是,如果我将逻辑移到控制器中并且只拥有一个按钮侦听器,则控制器可以使用该按钮来执行它不适合做的事情,尽管它上面有一个“随机化”标签。
那么简而言之,GraphControlsView 应该直接控制它的 GraphView 子视图吗?还是应该有一个控制器来监听 GraphControlsView 并在 GraphView 上设置点?
【问题讨论】:
-
你可以看看android适配器是如何处理它的:developer.android.com/reference/android/widget/Adapter.html
-
不确定,但您在寻找 MVP 模式吗?
标签: java model-view-controller