首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模型-视图-控制器中的后端

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

Stack Overflow用户
提问于 2012-05-23 06:06:20
回答 2查看 647关注 0票数 1

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

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

EN

回答 2

Stack Overflow用户

发布于 2012-05-23 07:36:49

Wikipedia将模型定义为“表示应用程序状态的域对象或数据结构”。考虑到这一点,我们可以看到,尽管数据库不是严格意义上的代码库的一部分,但它仍然表示(保存)所使用的数据,因此(至少在某种程度上)是模型的一部分。如果您尝试考虑为什么它不是控制器或视图的一部分(这两者都应该与模型一起工作,而不是直接独立工作),就会更容易理解这一点。

现在,就像@John Doe发布的图片一样,您将看到,为了保留MVC结构,您需要通过Model提供到数据库的接口。

作为一个过于简单的例子,你可以考虑写这样的代码:

代码语言:javascript
复制
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,它将使控制器和视图更灵活,更容易。

我希望我能帮上忙!:)

票数 0
EN

Stack Overflow用户

发布于 2012-05-23 08:20:33

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

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

https://stackoverflow.com/questions/10710864

复制
相关文章

相似问题

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