1

URL を使用してナビゲートする GWT Web アプリケーションと MVP パターンがあります。URL ごとに、呼び出されるプレゼンターがいます。私は約 20 人の異なるプレゼンターを持っています。どのプレゼンターを呼び出すかを決定するには、次のような条件を使用します。

if (view.equals("vue1")){
   presenter = new presenter1();
}else if(view.equals("vue2")){
   presenter = new presenter2();
}else if(view.equals("vue3") || vue.equals("vue4") || vue.equals("vue5")){
   presenter = new presenter345();
}
...

アプリケーションの開始時に HashMap をロードするという別の方法を試しました。マップには、ビューがキーとして、プレゼンターが値として含まれています。しかし、複数のキー (ビュー) が同じプレゼンターを指していることが多いため、複雑になります。したがって、上記の例の最後の条件については、次のようにします。

map.put("vue3",new Presenter345);
map.put("vue4",new Presenter345);
map.put("vue5",new Presenter345);

質問:

1-コードがクライアント側(JavaScript)にあることを知っていると、どちらが効率的ですか?

2-別の選択肢はありますか?

4

1 に答える 1

2

20個くらいしかないなら、あまり気にしません。switch ステートメントを使用して、最も可能性の高いビューを最初に含めようとします。または、if ステートメントを保持し、最初に最も可能性の高い条件を再度テストします。しかし、ハッシュマップはほとんど平均 O(1) を与えると思いますが、if ステートメントまたはスイッチは平均 O(n) を与えるでしょう。

于 2012-07-31T15:49:41.950 に答える