Model view controller MVC模型设计/继承
请原谅这个模糊的标题,我不知道该如何描述它 如果您有一个通用模型“归档”,如何根据用户选择的“类型”显示不同的视图/表单 例如,用户创建一个新的“归档”,然后可以选择视频、书籍、音频等。从那里,他们可以根据归档类型获得不同的形式 或者将它们分成不同的模式——视频、书籍、音频,会更好吗 或者模型可以继承(如视频扩展存档)。我猜这是基本的OOP/类,但不知道如何在这里应用它Model view controller MVC模型设计/继承,model-view-controller,oop,class,inheritance,model,Model View Controller,Oop,Class,Inheritance,Model,请原谅这个模糊的标题,我不知道该如何描述它 如果您有一个通用模型“归档”,如何根据用户选择的“类型”显示不同的视图/表单 例如,用户创建一个新的“归档”,然后可以选择视频、书籍、音频等。从那里,他们可以根据归档类型获得不同的形式 或者将它们分成不同的模式——视频、书籍、音频,会更好吗 或者模型可以继承(如视频扩展存档)。我猜这是基本的OOP/类,但不知道如何在这里应用它 欢迎来自任何MVC框架的示例 您的模型视频、书籍和音频可以从存档中继承 每个模型都有一个控制器 在创建相应的模型之前,您必须
欢迎来自任何MVC框架的示例 您的模型视频、书籍和音频可以从存档中继承 每个模型都有一个控制器 在创建相应的模型之前,您必须让用户选择他们想要的归档类型 编辑(回应评论) 在ASP.NET MVC中,您的模型将是一个类
public class Video : Archive
{
public int Id {get;set}
public string Name {get;set;}
...
}
您还将拥有一个控制器
public class VideoController : Controller
{
public object Edit(int id)
{
Video myVideo = GetVideo(id);
return View("Edit", myVideo);
}
...
}
您将在Views目录中拥有一个视图,例如,包含
public class Edit : View<Video>
{
...
}
公共类编辑:查看
{
...
}
如果你有一个URL是
这一切都是从内存中完成的,因此可能会有一些错误,但是带回家的消息是您在模型中指定了继承。模型只是一个类。在您的情况下,您希望从存档中继承。完成后,模型将正常传递。您的模型可以从存档中继承视频、书籍和音频 每个模型都有一个控制器 在创建相应的模型之前,您必须让用户选择他们想要的归档类型 编辑(回应评论) 在ASP.NET MVC中,您的模型将是一个类
public class Video : Archive
{
public int Id {get;set}
public string Name {get;set;}
...
}
您还将拥有一个控制器
public class VideoController : Controller
{
public object Edit(int id)
{
Video myVideo = GetVideo(id);
return View("Edit", myVideo);
}
...
}
您将在Views目录中拥有一个视图,例如,包含
public class Edit : View<Video>
{
...
}
公共类编辑:查看
{
...
}
如果你有一个URL是
这一切都是从内存中完成的,因此可能会有一些错误,但是带回家的消息是您在模型中指定了继承。模型只是一个类。在您的情况下,您希望从存档中继承。一旦你完成了这项工作,模型就可以正常传递。在我看来,支持MVC的一个要点是,如果用户需要的只是一个不同的视图,那么你可能不需要定制模型(或控制器,你只需要一个)。只有在存储(持久性)体系结构规定需要时,才会出现多个模型。如果您需要多个模型,一些特性(如数据访问对象(DAO))可能会显示为控制器和模型之间的另一层 以该项目为例。正如Struts for Newbiers中所述,“要很好地使用Struts,掌握基本原理非常重要。从回顾开始,学习任何不熟悉的主题。”
关于另一个资源,请参阅(Sun J2EE蓝图)在我看来,支持MVC的一个要点是,如果用户需要的只是一个不同的视图,您可能不需要自定义模型(或控制器,您只需要一个)。只有在存储(持久性)体系结构规定需要时,才会出现多个模型。如果您需要多个模型,一些特性(如数据访问对象(DAO))可能会显示为控制器和模型之间的另一层 以该项目为例。正如Struts for Newbiers中所述,“要很好地使用Struts,掌握基本原理非常重要。从回顾开始,学习任何不熟悉的主题。”
有关另一个资源,请参阅(Sun J2EE蓝图),以实际显示不同的视图在任何MVC框架中都应该很容易。例如,在Microsoft ASP.NET MVC中,您不会像以下那样仅从控制器返回视图:
return View();
但实际上会将视图的名称声明为参数:
return View("VideoArchive");
在任何MVC框架中,从Views/Archive/VideoArchive.aspx实际显示不同视图都应该很容易。例如,在Microsoft ASP.NET MVC中,您不会像以下那样仅从控制器返回视图:
return View();
但实际上会将视图的名称声明为参数:
return View("VideoArchive");
这将显示Views/Archive/VideoArchive.aspx中的视图,您似乎不希望该类型继承自存档。 “总是喜欢封装/包含而不是继承” 为什么不创建一个名为Archive的类并为其指定一个type属性呢。该类型可以使用继承来专门处理音频、视频等 您似乎会根据其他一些标准专门化归档。“FileSystemArchive”、“XMLArchive”、“SQLArchive”和类型不会更改。但是我内心的敏捷主义者说,一开始可能不需要这样做,以后你可以随时重构设计
就控制器而言,通过封装视图中每种类型的表示差异,您可能会获得最大的收益。因此,只有视图会根据类型进行更改。可能每种类型的语义和规则都是相同的,您不需要为每种类型使用单独的控制器。每个类型的视图都不同,因为它具有不同的属性 似乎您不希望该类型从存档中继承。 “总是喜欢封装/包含而不是继承” 为什么不创建一个名为Archive的类并为其指定一个type属性呢。该类型可以使用继承来专门处理音频、视频等 您似乎会根据其他一些标准专门化归档。“FileSystemArchive”、“XMLArchive”、“SQLArchive”和类型不会更改。但是我内心的敏捷主义者说,一开始可能不需要这样做,而且你可以随时重构设计