首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >这是不好的MVC设计吗?

这是不好的MVC设计吗?
EN

Stack Overflow用户
提问于 2013-02-28 18:40:13
回答 5查看 129关注 0票数 3

我想知道这是否不好;让视图了解控制器,这样它就可以委托视图中发生的操作等等,并且让控制器知道视图(这显然是正确的),但是这是双向关系,我想知道是否正确?我希望引用视图中的控制器,因为我希望将所有工作委托给控制器,并保持视图干净。

这是不是很糟糕的设计,如果是这样的话,我还能做什么不同的事情来实现同样的目标?

控制器:

代码语言:javascript
运行
复制
public class Controller {

    private View view;

    public Controller() {
        view = new View(this);
    }

    public void doSomeButtonAction() {
        // More code...
    }
}

视图:

代码语言:javascript
运行
复制
public class View implements ActionListener {

    private Controller controller;
    private Button button;

    public View(Controller controller) {
        this.controller = controller;

        // Code for initializing button reference etc.
    }

    @Override
    public void actionPerformed(ActionEvent event) {
        controller.doSomeButtonAction();
    }    
}
EN

Stack Overflow用户

发布于 2013-02-28 21:03:48

分配特定按钮执行的功能是视图级别的问题。控制器负责提供如何操作,但它不会向上告诉视图它的按钮应该做什么。视图可以“知道”“这是一个调用保存操作的按钮”。视图的全部目的是将人工输入转换为软件操作!

如果您想要可重用的组件,您当然可以在其中添加另一个抽象层,但是分配按钮执行什么操作的代码在概念上仍然是“视图”的一部分,不管您将其粘贴在哪里。

票数 0
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15143146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档