前一阵子我问了here,因为我对这个话题很陌生,所以在理解MVC方面有所帮助。我认为自己对此有相当的理解,这在我最近撰写关于这个主题的blog post中有记录。我的理解基本上归结为:MVC:模型和实体对象是否将概念分开?
控制器:确定完成请求需要做什么,并根据需要利用需要收集/修改的任何模型。它基本上是一个给定过程的管理者。
观看次数:仅限演示。一旦控制器收集到需要的东西,它会创建一个特定类型的视图,将它传递给信息,并说“显示给用户,但是你这样做”。
Models:应用程序的行为。当控制器要求它提取或修改某些内容时,它知道如何去做。它也知道要触发其他模型来完成相关任务(在我的理解中,当一个模型试图在StackOverflow上“投票赞成”时,该模型知道要问是否也应该授予徽章,因为控制器没有需要关心)。
我的问题,假设所有这些都或多或少准确,是实体对象进来的地方?模型和实体是同一件事,每个对象知道如何保留自己的数据,或者实体是一个独立的概念,它们独立存在并在整个应用程序中使用?
我的钱在后者上,因为这将允许模型独立行事,而所有三层(模型,视图和控制器)都可以利用实体根据需要传递数据。而且,对象和数据库持久性看起来应该分开。
说实话,我对MVC的了解越多,我就越感到困惑。我准备好采用核心概念(单独的逻辑演示),并以任何正确的方式与它一起运行,而不必太担心“MVC”标签。
对不起,但我不太清楚你在说什么。你能改述一下吗? – AgentConundrum 2010-09-29 07:56:24
真的很抱歉因为我的英语...:P – 2010-09-29 07:57:50
不用担心。那么,你是说模型和实体是一回事?我对此感到有点惊讶,因为(正如我在我的问题中所说),似乎实体本身不应该担心自己的持久性。 – AgentConundrum 2010-09-29 08:06:56