タグ付けされた質問 「model-view-controller」

モデル-ビュー-コントローラ(MVC)は、ソフトウェアエンジニアリングで使用されるアーキテクチャパターンです。Microsoft ASP.NET MVCの場合は、代わりに[asp.net-mvc]または[asp.net-core-mvc]タグを使用してください。Spring MVCの場合は、代わりに[spring-mvc]タグを使用してください。

24
MVPとMVCとは何ですか?違いは何ですか?
この投稿を改善してみませんか?この質問に対する詳細な回答を提供してください。これには、引用や、回答が正しい理由の説明が含まれます。詳細が不十分な回答は編集または削除される場合があります。 ユーザーインターフェイスを構築するRAD(ドラッグアンドドロップおよび構成)の方法を超えて検討すると、多くのツールは、Model-View-Controller、Model-View-Presenter、およびModel-View-ViewModelと呼ばれる3つの設計パターンに出くわす可能性が高いと考えています。私の質問には3つの部分があります。 これらのパターンはどのような問題に対処しますか? それらはどのように似ていますか? それらはどう違いますか?

30
View Controller間でのデータの受け渡し
私はiOSとObjective-C、およびMVCパラダイム全体に不慣れで、次の問題に悩まされています。 データ入力フォームとして機能するビューがあり、ユーザーに複数の製品を選択するオプションを提供したいと考えています。製品は別のビューにと表示され、UITableViewController複数の選択が可能になっています。 私の質問は、あるビューから別のビューにデータを転送するにはどうすればよいですか?UITableView配列の選択を保持しますが、それを以前のデータ入力フォームビューに戻し、フォームの送信時に他のデータと一緒にコアデータに保存できるようにするにはどうすればよいですか? サーフィンをして、一部の人々がアプリのデリゲートで配列を宣言しているのを見ました。私はシングルトンについて何かを読みましたが、これらが何であるかを理解しておらず、データモデルの作成について何かを読みました。 これを実行する正しい方法は何ですか?どうすればいいですか?

25
MVCとMVVMの違いは何ですか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 6か月前に閉鎖。 標準の「Model View Controller」パターンとMicrosoftのModel / View / ViewModelパターンに違いはありますか?

5
MVCでモデルをどのように構成する必要がありますか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 2年前休業。 私はMVCフレームワークを把握しているだけで、モデルにどのくらいのコードを含める必要があるのか​​よく疑問に思います。私はこのようなメソッドを持つデータアクセスクラスを持っている傾向があります。 public function CheckUsername($connection, $username) { try { $data = array(); $data['Username'] = $username; //// SQL $sql = "SELECT Username FROM" . $this->usersTableName . " WHERE Username = :Username"; //// Execute statement return $this->ExecuteObject($connection, $sql, $data); } catch(Exception $e) { throw $e; } } 私のモデルは、データベーステーブルにマップされるエンティティクラスになる傾向があります。 モデルオブジェクトには、データベースにマップされたすべてのプロパティと上記のコードを含める必要がありますか、それとも実際にデータベースが機能するコードを分離しても問題ありませんか? 最終的に4つのレイヤーができますか?

21
AndroidのMVCパターン
AndroidのJavaでモデル、ビュー、コントローラーのパターンを実装することは可能ですか? それとも、アクティビティによってすでに実装されていますか?または、AndroidにMVCパターンを実装するより良い方法はありますか?

10
djangoでのビジネスロジックとデータアクセスの分離
私はDjangoでプロジェクトを書いていて、コードの80%がファイルにあることがわかりましたmodels.py。このコードは混乱を招き、一定の時間が経過すると、実際に何が起こっているのか理解できなくなります。 ここに私を悩ませるものがあります: モデルレベル(データベースからのデータの処理のみを担当するはずでした)もメールを送信したり、APIを他のサービスに提供したりしているのは醜いです。 また、ビジネスロジックをビューに配置することは、制御が難しくなるため、許容できません。たとえば、私のアプリケーションでは、の新しいインスタンスを作成する方法が少なくとも3つありますがUser、技術的には均一に作成する必要があります。 モデルのメソッドとプロパティが非決定的になるとき、および副作用が発生するときはいつでも気が付きません。 これは簡単な例です。最初は、Userモデルは次のようでした。 class User(db.Models): def get_present_name(self): return self.name or 'Anonymous' def activate(self): self.status = 'activated' self.save() 時間の経過とともに、次のようになりました。 class User(db.Models): def get_present_name(self): # property became non-deterministic in terms of database # data is taken from another service by api return remote_api.request_user_name(self.uid) or 'Anonymous' def activate(self): # method …

8
モデルデータと動作をどこに置くか?[tl; dr; サービスの利用]
私の最新プロジェクトではAngularJSを使用しています。ドキュメントとチュートリアルでは、すべてのモデルデータがコントローラースコープに入れられます。コントローラーで使用できるように、つまり対応するビュー内にある必要があることを理解しています。 しかし、私はモデルが実際にそこで実装されるべきではないと思います。これは複雑で、たとえばプライベート属性を持つ場合があります。さらに、別のコンテキスト/アプリで再利用することもできます。すべてをコントローラーに入れると、MVCパターンが完全に壊れます。 同じことが、どのモデルの動作にも当てはまります。DCIアーキテクチャを使用し、データモデルから動作を分離する場合、動作を保持するために追加のオブジェクトを導入する必要があります。これは、ロールとコンテキストを導入することによって行われます。 DCI == D ATA C ollaboration I nteraction もちろん、モデルのデータと動作は、プレーンなJavaScriptオブジェクトまたは「クラス」パターンで実装できます。しかし、それを行うためのAngularJSの方法は何でしょうか?サービスを使用していますか? したがって、この質問に帰着します。 AngularJSのベストプラクティスに従って、コントローラーから切り離されたモデルをどのように実装しますか?


9
Java EE Web開発、どこから始めればいいですか、またどのようなスキルが必要ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前に閉鎖。 少なくとも基本的なレベルで、(。NETのバックグラウンドから)Java Webアプリケーションを構築する方法を学びたいです。シンプルなCMSタイプのアプリケーションをゼロから構築、デプロイできるようにしたいと思います。 正確に何を学ぶ必要がありますか? TomcatはJavaに適したWebサーバーのようです。 Webにはどのようなオプションがありますか?ORMのHibernateがあることは知っています。 JavaにはMVCがありますか?何についてのJSP?MVCとJSPを一緒にすることはできますか?NetBeans? 多分これらすべてをカバーする本ですか?

5
ビュー内の現在のコントローラーの名前を取得できますか?
現在のコントローラーがビュー内から何であるかを理解する方法はありますか? これを知りたい理由の例:複数のコントローラーが同じレイアウトを共有している場合、コントローラーに基づいて現在のページのメニュー項目を強調表示したいレイアウトERBファイルにパーツがある可能性があります。 多分それは悪いアプローチです。もしそうなら、これを行うためのより好ましい方法は何ですか? ただし、現在のコントローラーの名前をいずれかの方法で取得する方法について知りたいです。 (もちろん@controller_name = 'users'、各コントローラーに何かを入れることもできますが、Railsがすでに裏で行っているようなことなので、組み込みの方法があるかどうか疑問に思っています。)

4
MVC、MVP、MVVMの設計パターンのコーディングの違いは何ですか?
「MVC、MVP、MVVMの設計パターンの違いは何ですか」というフレーズを使用してGoogleを検索すると、理論的にはMVC MVPとMVVMの設計パターンの違いを説明するいくつかのURLが得られることがあります。 MVP データコンテキストを介したバインドが不可能な状況で使用します。Windowsフォームはこれの完璧な例です。ビューをモデルから分離するには、プレゼンターが必要です。ビューはプレゼンターに直接バインドできないため、インターフェイス(IView)を介してビューに情報を渡す必要があります。 MVVM データコンテキストによるバインドが可能な状況で使用します。どうして?各ビューのさまざまなIViewインターフェイスが削除され、維持するコードが少なくなります。MVVMが可能な例には、Knockoutを使用したWPFおよびJavaScriptプロジェクトが含まれます。 MVC ビューとプログラムの残りの部分との間の接続が常に利用できるとは限らない(そして、MVVMまたはMVPを効果的に使用できない)状況で使用します。これは、Web APIがクライアントのブラウザーに送信されるデータから分離されている状況を明確に説明しています。MicrosoftのASP.NET MVCは、このような状況を管理するための優れたツールであり、非常に明確なMVCフレームワークを提供します しかし、理論的にはサンプルコードと共にその違いを説明する記事は1つもありません。 これらの3つのデザインパターン(MVC、MVP、MVVM)の違いについてコードと一緒に説明する記事を入手できたら、本当に嬉しいです。 これら3つのデザインパターン(MVC、MVP、MVVM)によって実装された3つの類似したCRUDアプリのソースコードを手に入れたいのですが。コードを確認して、これら3つの設計パターン(MVC、MVP、MVVM)のコードをどのように記述するかを理解できるようにします。 したがって、これらの3つの設計パターン(MVC、MVP、MVVM)でコードがどのように異なるかを説明する記事が存在する場合は、その記事にリダイレクトしてください。

7
AngularJSのディレクティブからディレクティブを追加する
宣言されている要素にさらにディレクティブを追加する処理を行うディレクティブを作成しようとしています。たとえばdatepicker、datepicker-languageとの追加を処理するディレクティブを作成したいとしng-required="true"ます。 これらの属性を追加してから使用する$compileと、明らかに無限ループが生成されるので、必要な属性をすでに追加しているかどうかを確認しています。 angular.module('app') .directive('superDirective', function ($compile, $injector) { return { restrict: 'A', replace: true, link: function compile(scope, element, attrs) { if (element.attr('datepicker')) { // check return; } element.attr('datepicker', 'someValue'); element.attr('datepicker-language', 'en'); // some more $compile(element)(scope); } }; }); もちろん、$compile要素を指定しない場合、属性は設定されますが、ディレクティブはブートストラップされません。 このアプローチは正しいですか、それとも間違っていますか?同じ動作を実現するより良い方法はありますか? UDPATE:$compileこれを達成する唯一の方法であるという事実を踏まえて、最初のコンパイルパスをスキップする方法はありますか(要素に複数の子が含まれる場合があります)?たぶん設定terminal:true? UPDATE 2:ディレクティブをselect要素に入れてみましたが、予想どおり、コンパイルが2回実行されoptionます。つまり、予想されるの数が2倍になります。

13
「MVC」の「コントローラー」には何が入りますか?
MVCの基本的な概念は理解していると思います。モデルにはアプリケーションのデータと動作が含まれ、ビューはユーザーに表示し、コントローラーはユーザー入力を処理します。私が不確かなのは、まさにコントローラーに何が入るかです。 たとえば、私がかなり単純なアプリケーションを持っているとしましょう(私は特にJavaを考えていますが、同じ原則が他の場所にも当てはまると思います)。私はと呼ばれる3つのパッケージの中に私のコードを整理しapp.model、app.viewそしてapp.controller。 app.modelパッケージ内には、アプリケーションの実際の動作を反映するクラスがいくつかあります。これらextends Observableを使用setChanged()しnotifyObservers()て、ビューをトリガーし、適切なときに更新します。 app.viewパッケージには、使用するクラス(またはディスプレイの異なるタイプのためのいくつかのクラス)を持つjavax.swingディスプレイを処理するためのコンポーネントを。これらのコンポーネントの一部は、モデルにフィードバックする必要があります。私が正しく理解していれば、ビューはフィードバックとは何の関係もないはずです。フィードバックはコントローラーが処理する必要があります。 それで、私は実際にコントローラーに何を入れますか?私は入れてくださいpublic void actionPerformed(ActionEvent e)コントローラのメソッドを呼び出すだけでビューに?その場合、コントローラーで検証などを行う必要がありますか?もしそうなら、どのようにエラーメッセージをビューにフィードバックするのですか-それは再びモデルを通過する必要がありますか、それともコントローラはそれをビューに直接送信するだけですか? 検証がビューで行われた場合、コントローラーには何を入れますか? 長い質問でごめんなさい、私はプロセスの私の理解を文書化したかったのですが、うまくいけば誰かがこの問題を私のために明確にしてくれるでしょう!

10
MVCのビジネスロジック[終了]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 17日前休業。 この質問を改善する 2つの質問があります。 Q1。「ビジネスロジック」はMVCパターンのどこにあるのでしょうか。モデルとコントローラーの間で混乱しています。 Q2。「ビジネスロジック」は「ビジネスルール」と同じですか?そうでない場合、違いは何ですか? 小さな例で説明していただければ幸いです。

5
ポップアップを最もエレガントな方法で表示する
このAngularJSアプリがあります。すべてうまくいきます。 ここで、特定の条件がtrueになったときにさまざまなポップアップを表示する必要があり、次に進むための最良の方法は何かと思っていました。 現在、私は2つのオプションを評価していますが、他のオプションについては完全にオープンです。 オプション1 ポップアップ用の新しいHTML要素を作成し、コントローラーから直接DOMに追加できます。 これは、MVCデザインパターンを壊します。私はこの解決策に満足していません。 オプション2 静的HTMLファイルのすべてのポップアップのコードをいつでも挿入できます。次に、を使用してngShow、正しいポップアップのみを非表示/表示できます。 このオプションは実際にはスケーラブルではありません。 ですから、私が望むものを達成するためのより良い方法がなければならないと私はかなり確信しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.