不依赖于框架的MVC教程?[已关闭]

我想学习MVC的“架构模式”,但我还不想跳进像Rails或Django这样的框架。我想先理解这个概念,并在我目前熟悉的环境中编写一些简单的代码,恰好是PHP / HTML / CSS / MySQL。我不一定需要一个基于PHP的教程,因为我确实理解很多不同的语言。我不想安装任何框架、API或库。我只想学习如何在MVC中思考并将其应用于我的项目。有什么建议吗?


答案 1

几乎每个框架都以不同的方式执行MVC,因此您最终可能会变得更加困惑。MVC的一般原则非常简单:“模型是状态;视图对模型做出反应;控制器对视图做出反应;控制器更改模型”。模型,视图和控制器是概念 - 它们是你觉得它们是什么。类,类束,具有XML配置文件的类的实例,您可以命名它。

我实际上认为这涵盖了基本原则。没有框架,你不会走得更远。重要的是特定框架如何定义模型、视图和控制器及其交互。


答案 2

MVC基本上只是将代码拆分为处理数据的模型,显示数据的视图以及将数据从模型传递到视图的控制器。

这不是你需要API或框架,它只是一种拆分代码的方式。许多框架使用它的原因是因为它是一个非常简单的概念,它适用于许多事情(它非常适合网页),并且相当灵活(例如,使用Rails,如果您愿意,您可以在视图或模型/控制器中执行所有操作。

Python中的一个快速示例,一个示例MVC结构化Python脚本。不一定是“最佳实践”,但它有效,并且相当简单:

class Model:
    def get_post(self, id):
        # Would query database, perhaps
        return {"title": "A test", "body": "An example.."}

class Controller:
    def __init__(self):
        self.model = Model()
        self.view = View()

    def main(self):
        post = self.model.get_post(1)
        self.view.display(post)

class View:
    def display(self, item):
        print "<h1>%(title)s</h1>\n%(body)s" % item

c = Controller()
c.main()

推荐