模型 - 视图 - 控制器中的后端,Java

时间:2012-05-22 22:06:20

标签: java model-view-controller model backend

在设计模式Model-View-Controller(MVC)中,后端数据库是Model层的一部分,还是与Model分开?

此外可以说MySQL数据库不是Model的一部分,因为它与Java代码分开放置?

2 个答案:

答案 0 :(得分:0)

Wikipedia将模型定义为“表示应用程序状态的域对象或数据结构。”我们可以看到,虽然数据库不是严格的一部分在代码库中,它仍然代表(保存)使用的数据,因此(至少在某种程度上)是模型的一部分。如果你试图考虑为什么它不会成为Controller或View的一部分(这两者都应该与模型一起工作而不是直接用于它们),那么更容易看到这一点。)

现在,就像@John Doe发布的图片一样,你会看到为了保留MVC结构,你需要提供一个接口数据库通过< / em>模特。

作为一个简单的例子,你可以考虑写这样的东西:

public ModelDatabaseWrapper implements ModelReadWriteInterface {
    public ModelDatabaseWrapper() {
        /* Prepares to use database... */
    }

    public Object getValue(Object someQuery) throws ModelReadException {
        /* Get something from it... */
    }

    public void putData() throws ModelWriteException {
        /* Insert something int to it... */
    }

    private DataBaseHandle db;
} 

这只是一个指导原则,但我强调了制作通用interface以便根据访问方式对模型组件进行分组的重点。在实际应用中,可以有多种形式的表示数据和数据。超出数据库的状态,因此通过保持一个干净的API,它将使Controller和View更加灵活。

我希望我帮忙! :)

答案 1 :(得分:0)

数据库是持久性的,而不是直接的MVC模式的一部分(尽管将模型状态持久化到数据库是很常见的。)