0

我有一个关于 MVC 的小问题:例如,如果我有一个模型“视频”并且应用程序允许用户添加/删除喜欢的视频(例如处理数据库中的收藏夹)。实现它的正确方法是什么?

  1. Video 类具有isFavourite() / addToFavourites()方法。当调用模型访问数据库适配器并更新正确的值时。
  2. Video 和 VideosManager 都有 isFavourite() / addToFavourites() 调用。当某些方法调用video.addToFavourites()时,视频模型调用VideoManager.addToFavourites(this)
  3. 只有 VideoManager 实现isFavourite(Video) / addToFavourites(Video)方法。当有人想要更改收藏夹时,直接调用 VideoManager。
4

2 回答 2

1

为什么收藏夹也没有以一流的方式建模?

我将引入一个类来表示收藏夹并将其用作执行持久性的地方(可能通过委托给VideoManager您所描述的类)。

class Favourites {
   public void addFavourite(Video video);
   public bool removeFavourite(Video video);
}
于 2012-07-25T09:30:20.020 回答
1

视频可以是特定用户的最爱。给视频类 isFavorite()/addToFavorite() 方法会导致这种关系错误。所以选项 1 和 2 不可行。

这似乎有利于选项 3。但我想补充一点。什么是视频管理器?用户应该负责管理她喜欢的视频,不是吗?

所以在我看来,应该有一个视频和用户的模型。视频视图可以让用户选择表示它是收藏夹。此操作调用一个控制器,从用户的收藏夹中添加/删除视频。

于 2012-07-25T09:40:37.067 回答