2017-01-25 8 views
0

私はYouTubeのスタンフォードからスウィフトのインストラクションビデオを見ていました。インストラクター(Paul Hagerty、偉大な先生!)は、iOSがMVC(モデルビューコントローラ)のアイデアを背景に構築されていることについて語ります。スタックオーバフローでアイデアが死んだと言う人もいますし、多くのWeb開発者がこの用語を使用していると言う人もいます。MVC、コントローラとモデルの違い?

コントローラーとモデルを区別するのに問題があります。 MVCをユーザーインターフェイス(Webページ/ UI)、コントローラ(サーバー)、モデル(データベース)として説明しました。しかし、インストラクターはビュー(理解しやすいUI)、モデル(例えば計算を行うデータとロジック)、コントローラ(特定のプログラミングロジックでモデルとビューを接続する)などと記述しました。

スタンドアロンアプリケーション(ウェブではない)のデータベースがない場合、私たちのプログラムが同時にどのように動作するのかというデータとロジックも作成していないのですか?この状況でコントローラーとモデルの違いは何ですか?

答えて

1

モデルはデータです。テーブルビューコントローラを想像してみてください。ビューはテーブルビューです。コントローラはUITableViewControllerです。モデルは、文字列の配列と同じくらい単純なものにすることができます。

コントローラは、モデルとビューを調整します。表示するデータを選択し、ビューにインストールします。

ちょうどテキストを表示する非常にシンプルなビューコントローラの場合、モデルは文字列と同じくらい簡単です。テキストが静的である場合、ビューコントローラは真の別個のモデルさえ有していなくてもよい。ストーリーボードに焼き付けられたテキストが表示されます。

+0

したがって、モデルは基本的に配列(またはオブジェクト/データ)のようなものが格納されているコンピュータ上の実際のメモリ位置です。これが私が推測するデータベースの例に似ている理由です。入力した配列を入力して配列に挿入するのはコントローラであり、そのビューはその配列データをUIに表示していますか? – schulzey

+0

メモリの場所よりも抽象的に考えるのが普通です。モデルは通常、オブジェクトです。ここで述べた単純な文字列または配列、またはデータベースをカプセル化し、モデルを操作するメソッドを含むより複雑なオブジェクトでもかまいません。たとえば、「オーダー」モデルオブジェクトには、オーダーからの広告申込情報の追加/削除、オーダーの送信、有料としてのマーキングなどの方法があります。 – Paulw11

0

MVCは、英語で「心配」を分ける方法と考えることができますが、それぞれが「責任」(懸念の分離)を持っています。

"単純な例"では、クライアントとサーバーとしての概念を「分離」することができます。つまり、さらに恥ずかしさを感じる可能性があります。browserといくつかのWebサイト。

  1. controller:ブラウザはユーザー入力を受け取り、次のように要求します。
  2. model:単にHTMLドキュメント
  3. view可能性があり、いくつかのデータで応答ウェブサイト:ブラウザはだから、ユーザーにデータが

レンダリング:

  • ブラウザのdoesnデータがどのように作成/構築されたかを知ることなく、要求/応答を管理し、結果を表示するだけです。

  • すべてth eウェブサイトは、データを構築し、それをリクエスタに(バック)提供します。

  • すべてのビューは、ユーザーに意味のある方法でレンダリング/表示します。データがどこから来たのか、どのように構築されたのかは気にしません。

Hth。

関連する問題