ソートロジックはモデル、ビュー、コントローラーのどれに配置する必要がありますか? [closed] 質問する

ソートロジックはモデル、ビュー、コントローラーのどれに配置する必要がありますか? [closed] 質問する

テーブルからエンド ユーザーに値を表示するドロップダウン リストがあります。これらの値をアルファベット順に並べ替えたいと思います。

適切な MVC 設計によれば、ソート ロジックをモデル、ビュー、コントローラーのどのレイヤーに配置する必要がありますか?

編集: LarsH さんの「どのような並べ替え順序が望ましいかを決定するコードですか、それとも並べ替えを実行するコードですか?」という質問に対して、私はもともとどのような並べ替え順序が望ましいかを決定するコードについて言及していました。

ベストアンサー1

並べ替え順序を制御するのは誰ですか?

シンプルなMVC図(からウィキペディア

1) データ自体の自然な順序:

順序はモデルの一部なので、そこに配置する必要があります。「すべてのデータ」の生のプルは、並べ替えられた順序でデータを返しますが、並べ替え順序を選択するためのインターフェイスはありません。

2) ユーザーはデータの表示方法を制御する必要があります。

ビューは、コントローラーと対話するインターフェイス(昇順/降順の矢印など)を提供し、モデルはデータを十分に理解して、要求されたデータの並べ替えを実行します。ただし、(1)とは異なり、データの生のプルは必ずしも並べ替える必要はありません。

どちらの場合にも、

ビューは、選択されたソート方向を表示する機能以外、ソートが行われていることを認識しません。そこにロジックを配置しないでください。

小さな注意点

並べ替え機能できた純粋に View に従う場合、1 つの状況 (すぐに思いつくのはこれだけですが、他にもあるかもしれません) に従います。

すべてのデータがすでにビュー内にあり、並べ替えを行うためにドメイン知識を使用する必要がない「ダム」並べ替え。たとえば、非常に単純な文字列または数値の比較などです。これは、結果が複数のページに分割される可能性のある Web ページの検索結果では不可能です。

おすすめ記事