1

ユーザーロールに依存するユーザーリンクの配列を生成するという考えがあります。

ユーザーは学生でも管理者でもかまいません。

私が念頭に置いているのは、foreachループを使用して、特定のユーザーのみが利用できるリンクのリストを生成することです。

私の問題は、と呼ばれるヘルパークラスを作成したNavigationことですが、そこにリンクをハードコーディングしてはならないことは確かです。代わりに、そのヘルパークラスがどこかから送信されたオブジェクトを読み取るだけで、目的のナビゲーションを返しますページへの配列。

フォローアップの質問です。学生、管理者のみが利用できるリンクをどこに保管すればよいと思いますか。それらをテキストファイルに保存する必要がありますか?

または、リンクの配列を渡すコントローラーを作成できる場合、たとえばnav_controllerクラスのメソッド->studentLinks(){}リンクの配列をヘルパークラスに送信する場合、ヘルパークラスはそれをビューに送信します..

私が説明するのにかなり夢中になっている場合は申し訳ありません。関連するリソースはありますか?

4

2 に答える 2

1

あなたの説明から、教育関連のシステムを構築しているように見えます。後でプロジェクトを拡張できるような方法で実装を作成することは理にかなっています。後で役割として「講師」が追加されることを期待するのは合理的です。

それからまた.. MVC 設計パターンに関するあなたの知識がどれほど広範かはわかりません。

とはいえ、この状況では、これを解決する2つの方法を検討します。

  1. View は、モデル レイヤーから現在のユーザーのステータスを要求し、応答に基づいて追加データを要求します。次に、view は管理者またはユーザー テンプレートのいずれかを使用して、応答を作成します。

    テンプレート内の特定のナビゲーション項目をハードコーディングして応答を作成するか、使用可能なナビゲーション項目のリストをモデル レイヤーから要求した追加情報の一部にすることができます。

    この方法の欠点は、別のグループを追加する必要があるたびに、(すべてではないにしても) 一部のビュー クラスを書き直す必要があることです。

  2. モデル層からの構造を包含オブジェクト(この投稿で利用可能な実装の基礎 ) でラップします。これにより、返されるデータを制限できます。

    このアプローチを使用する場合、ビュー アウェイはモデル レイヤーから利用可能なすべての情報を要求しますが、その一部は を返しnullます。この場合、テンプレートは適用されません。これを実装するには、利用可能なナビゲーション項目のリストをモデル レイヤーで提供する必要があります。

PSこの説明からお気づきかもしれませんが、ビューはテンプレートではなく、モデルはクラスではありません。

于 2012-08-03T19:49:46.390 に答える
0

それは、すでに使用しているものとプロジェクトの規模に大きく依存します。データベースを使用している場合は、そこに貼り付けます。xml/json/yaml/whatever を使用している場合は、対応する形式のファイルに保存してください。どちらも持っていない場合は、ハードコードしてください。つまり、複数のテクノロジーを使用してデータを保存することは避けてください。また、リンクが頻繁に更新されず、ユーザーがリンクをカスタマイズできない場合は、リンクをハードコーディングします。アプリがほとんど静的である場合、ダイナミクスのために非常に複雑なものを作成しても意味がありません。

この質問は、stackoverflow にはあまり当てはまらないことに注意してください。プログラマー.stackexchange.comはおそらくより適しているでしょう

于 2012-08-03T17:59:28.620 に答える