MVCモデルのデザイン/相続
-
02-07-2019 - |
質問
ご容赦の漠然としたタイトルからどを記述することができる。
場合は汎用モデル"のアーカイブ"どうかという話があったようだが大きく異なる景色/書に基づくユーザーの選択'タイプ'?
たとえばユーザを作成し新たな"アーカイブ"、その後の選択肢のビデオ、書籍、オーディオなど。あらかの異なる形態でのアーカイブタイプです。
またはこれを分割して異なるモデル-ビデオ、書籍、オーディオ?
でのモデルを受け継ぐようなビデオ拡張のアーカイブ).この基本OOP/授業でも分からないの中でどのように生きているか。
例からMVCしていることが知られています。歓迎!
解決
そうでないタイプの継承からアーカイブを展開します。"常に賛同封止/格納容器上の継承".
なぜなクラスを作成するというアーカイブでタイプ物件です。型を使産を残すつもりはない遺産を残専門オーディオ、ビデオ等
いす専門アーカイブに基づくその他の基準とします。"FileSystemArchivce","XMLArchive","SQLArchive"の種類が変わりません。そのagilistかどうかということはないのかもしれませんnecesscaryので、できrefactorのデザイン。
のコントローラは、その最大の困による封止の差異の発表をそれぞれの型にしたもの。のみの変化に基づくタイプです。が意味やルールをそれぞれ同じですねばならないことは起こらないって別のコントローラーの各タイプです。をする毎に異なるタイプで異なる属性です。
他のヒント
実際に異なるべきやすい任意のMVC。例えば、マイクロソフトマイクロソフトASP.NET MVCは必要ありませんで返すビューのコントローラーからすると、下記のように
return View();
もう状態の名前として、パラメータ:
return View("VideoArchive");
そのビューからの景色/アーカイブ/VideoArchive.aspx
モデル、ビデオ、書籍やオーディオに引き継ぐからアーカイブを展開します。
各モデルにしてコントローラです。
http://yourserver/Books/Edit/11
まだユーザーへの送迎は行っておりタイプのアーカイブしたいを作成する前に、対応するモデルです。
編集に対応のコメント
に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);
}
...
}
ま眺めを一望のディレクトリのページを含む
public class Edit : View<Video>
{
...
}
なので話ができるこの場合には、URLた
http://localhost/Video/Edit/11
きたからメモリであるので間違いものの、持ち帰りメッセージを指定するの継承のモデルです。このモデルはただのクラスです。このケースを継承すェアをインストールします.お客さま人数小児-幼児のときは、このモデルは、パスを回しています。
いて考察してみたいと思いる固体のポイントMVCは必要ないかもしれませんが、カスタマイズのモデルやコントローラを必要としないのだければ全てのユーザーのニーズは異なる。複数のモデルが登場合のみ保存(続)建築のを求めをすることを目的としている。一部の特徴のようなデータアクセスオブジェクト(DAO)が可能になるのが他の層の間にコントローラのモデルを伝えなければなりません。複数のモデルです。
の Apache Struts プロジェクトの例です。記 Strutsのための初心者, "を使用支柱もないの把握はセルフサービスとなります開始の見直しによる キー技術をプライマー, 在ず知らない。"
別の資源、 ソフトウェアとアプリケーションフレームワークの設計 (日J2EE設計図)
の 単一の責任の原則 (PDF)国:
あな理由の一つは、クラスが変化します。
アーカイブのクラスに違反することが原則として取り扱いは複数の異なる種類のアーカイブ.例えば、アップデートする必要があり、映像アーカイブを行いますが、変更のクラスを取り扱う書籍やオーディオをカバーしている。
を適切に扱うことを別のクラス毎に異なるタイプのアーカイブを展開します。これらを実施する上での共通インターフェイス(または継承の共通の基底クラス)できるようにおも呼ば(polymorphically)によりコードの利益ばかり考えて行動してい文書、特定のアーカイブです。
まことクラス階層にする必要がありますが、すぐに単一のコントローラーやビューの各モデルクラス。
のためのボーナスポイントは、単一の責任の原則のものの正当化ファクトリメソッドまたは抽象工場作成のモデルでは、ビューおよびコントローラオブジェクト(より新しいグしいインライン).すべてをオブジェクトを使用するオブジェクトが異なる責任もの変更が必要であることが異なる。