1

ユーザーが製品IDに基づいて製品の詳細を表示するページがあります。また、管理者も同じページを見ることができます。HTMLをレンダリングするためのテンプレートがあります。

管理者は、編集、削除など、そのページをより細かく制御できます。ユーザーはそれを見て購入することができます。


ケース1:条件を追加して同じテンプレートを使用し、ユーザーの長所に基づいてコンテンツを表示する
1)テンプレートやテーマを変更する必要がある場合は簡単です。
2)再利用性

短所
1)条件が多く、問題のデバッグに時間がかかると、複雑になります。
2)そのテンプレートのバグは、管理ページとユーザーページの両方に影響します。

ケース2:さまざまなテンプレートを使用する
長所
1)複雑な条件が多数ある場合は簡単です。
2)そしてそれはコードを独立させます。管理者テンプレートのバグはユーザーテンプレートに影響しません

短所
1)テンプレートまたはテーマを変更する必要がある場合の問題。(追加の依存関係)

どちらが良いオプションですか?行くべき正しい戦術は何ですか?

複雑さに基づいて適応する必要がありますか?これについてのご意見をお聞かせください。

4

3 に答える 3

2

ユーザーと管理者の間の重複を含む共有ベースを作成します。次に、デコレータパターンを使用して管理機能を追加します。

ベースを装飾することで、管理者部分のバグがユーザーに影響を与えるのを防ぎます。したがって、機能を追加している間、再利用性を維持できます。

于 2012-05-28T06:35:47.720 に答える
1

このような問題には、FactoryまたはAbstact Factoryパターンを使用してみませんか...この2つのパターンはオブジェクトのファミリーを処理するため、複雑さを軽減し、コードの保守を容易にします...

例:Abstract Factory

于 2012-05-28T06:30:40.127 に答える
0

次のようなデザインにする必要があります
。1。製品ページに2つのボタンがあるとします
。2。購入ボタン-一般ユーザー用
3.出荷アイテムボタン-管理者用
4.このボタンの表示は、ユーザーが管理者であるかどうかに依存しないようにする必要があります。 、ただし、そのコンポーネントをそのページに表示するかどうかについて

PageModel2つのブール属性を持つクラスが必要です

boolean showPurchaseButton
boolean showShipButton

テンプレート/ページ作成コードは1つだけにする必要があります。テンプレートクラスでは、次のようにコンポーネントをページに追加する必要があります。

if(showPurchaseButton){
//add purchase button to template
}
if(showShipButton){
//add ship button to template
}

ページの作成中に、次のようにユーザーに応じてPageModelにデータを入力できます。

//common user
PageModel model = new PageModel()
model.setshowPurchaseButton(true);
model.setshowShipButton(false);

//for admin user
PageModel model = new PageModel()
model.setshowPurchaseButton(false);
model.setshowShipButton(true);

//while creating your template pass this model to it.

このようにして、テンプレートにできるだけ多くのコンポーネントを追加できる柔軟性が得られます。また、ページモデルに値を入力すると、どのコンポーネントがどのユーザーに表示されているかがわかるため、デバッグも簡単になります。コードのこのセクションは、コントロールパネルとして機能します。

于 2012-05-28T08:06:43.793 に答える