我对MVC有一个小疑问:
例如,如果我有一个“视频”模型,并且该应用程序允许用户添加/删除收藏的视频(例如,在数据库中处理收藏的视频)。
实施该方法的正确方法是什么?
Video类具有isFavourite()/ addToFavourites()方法。调用模型时,将访问数据库适配器并更新适当的值。
VideoManager的两个Video都具有isFavourite()/ addToFavourites()调用。当某些方法调用video.addToFavourites()时,视频模型将调用VideoManager.addToFavourites(this)
仅VideoManager实现isFavourite(Video)/ addToFavourites(Video)方法。当有人想要更改收藏夹时,直接调用VideoManager。
最佳答案
视频可以是特定用户的最爱。给类Video isFavorite()/ addToFavorite()方法会导致此关系错误。因此,选项1和2不可行。
这似乎支持选项3。但是,我想补充一点。什么是VideoManager?用户应负责管理自己喜欢的视频,不是吗?
因此,我认为应该为视频和用户建立模型。视频视图可以让用户选择表明自己喜欢的视频。此操作将调用一个控制器,该控制器可从用户的收藏夹集中添加/删除视频。