0

スタック オーバー フローに似た Q&A サイトを設計することになっており、システムに必要な機能は次のとおりです。

Users   
    -Non-member
        -Sign-up
        -View questions and answers
        -Search for questions
    -Member (inherits above above features (except for sign-up) and the ones below)
        -Login
        -View question
        -Ask question
        -Answer question
        -Edit own question
        -Edit other user's questions (needs reputation)
        -Delete question
        -Vote on question (needs reputation)
        -Report other user's questions (needs reputation)
        -Comment on questions and answers
    -Moderator (upgraded from member inherits all the above features and the ones below)
        -Remove other questions
        -Create tags
        -Remove member (needs 4 other moderators' approval)

Modelsしかし、これらを,Viewsとに分けるのは混乱していControllersます。

このテンプレートhttp://creately.com/diagram/example/gg3qz3ut/MVCを使用して実行しようとしましたが、ModelControllerは同じように見えます。このアーキテクチャを使用するのはこれが初めてであるため、これらを MVC モデルに分離する方法について、専門家がいくつかのアイデア/例を提供してくれることに本当に感謝しています。

ありがとうございました :)

4

1 に答える 1

1

上記の仕様から、さまざまな役割に応じたユーザー モデルの動作のみを理解しています。最初に MVC とは何かを説明し、次にソリューションを紹介します。すべてのデータ依存システムには、データベースまたは xml ファイルであるストレージがあります。 .したがって、コードには、保存されたデータを再構築するオブジェクトが必要です。この場合、ユーザーから継承するユーザーとモデレーター (ちなみに、継承の代わりにインターフェースを使用することを強くお勧めします。インターフェースを使用すると、役割を簡単に拡張できます)、質問、コメント。データベースとのやり取りを取得し、コントローラー クラスで使用するモデルを作成するには、データ アクセス オブジェクト層も必要です。この場合、DAO インターフェイスを実装する UserDAO、QuestionDAO、CommentDAO です。コントローラに移りましょう。コントローラはモデルやビューとやり取りするクラスです。モデルに対して小さな操作を行ってビューに渡すか、ビューからデータを取得して操作し、関連する DAO に渡して保存します。この場合、SingupController、LoginController、QuestionController が必要です。たとえば、サインアップフォームのビューからデータを取得し、SingupController.singUp() メソッドで検証を行い、有効な場合は UserDAO を呼び出してユーザー行を作成します。すべての仕様を網羅することはできませんでしたが、基本的な設計を提案しました。有効な場合は、UserDAO を呼び出してユーザー行を作成します。すべての仕様を網羅することはできませんでしたが、基本的な設計を提案しました。有効な場合は、UserDAO を呼び出してユーザー行を作成します。すべての仕様を網羅することはできませんでしたが、基本的な設計を提案しました。

于 2014-01-13T00:23:53.897 に答える