0

MVCについて少し質問があります。たとえば、モデル「ビデオ」があり、アプリケーションでユーザーがお気に入りのビデオを追加/削除できる場合(たとえば、データベース内のお気に入りを処理する場合)。それを実装するための正しいアプローチは何ですか?

  1. ビデオクラスにはisFavourite() / addToFavourites()メソッドがあります。モデルと呼ばれると、データベースアダプタへのアクセスが行われ、適切な値が更新されます。
  2. ビデオとVideosManagerの両方にisFavourite()/ addToFavourites()呼び出しがあります。一部のメソッドがvideo.addToFavourites()を呼び出すと、VideoモデルはVideoManager.addToFavourites(this)を呼び出します。
  3. VideoManagerのみがisFavourite(Video) / addToFavourites(Video)メソッドを実装します。誰かがお気に入りを変更したいときは、VideoManagerに直接呼び出します。
4

2 に答える 2

1

ビデオは特定のユーザーのお気に入りになることができます。クラスVideoisFavorite()/ addToFavorite()メソッドを指定すると、この関係が正しくなくなります。したがって、オプション1と2は実行可能ではありません。

これはオプション3を支持するようです。しかし、私はサイドノートを置きたいと思います。VideoManagerとは何ですか?ユーザーは彼女のお気に入りのビデオを管理する責任がありますね?

したがって、私の意見では、ビデオとユーザーのモデルが必要です。動画の表示には、ユーザーがお気に入りであることを通知するオプションがあります。このアクションは、ユーザーのお気に入りのセットからビデオを追加/削除するコントローラーを呼び出します。

于 2012-07-25T09:40:37.067 に答える
1

お気に入りも一流の方法でモデル化されていないのはなぜですか?

お気に入りを表すクラスを導入し、それを永続化を実行する場所として使用します (おそらく、VideoManager説明したクラスに委譲することによって)。

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