私が政府と呼ばれるクラスを作っていると仮定します。政府には、役員、大臣、部門などのメンバーがいます。これらのメンバーごとにインターフェイスを作成し、特定の政府が好きなように定義します。
Government クラスのメイン メソッドは と呼ばれServe(Request req)
ます。クエリ レートが非常に大きい (1 秒あたり 1000 以上のクエリ) と仮定します。
政府を作成するには、次のことができます
。1) Java ジェネリックを使用して記述Government<Class Minister, Class Officer, ...>
し、特定の政府実装では、Java コードで独自の政府オブジェクトを作成し、main()
デプロイ可能な jar を用意する必要があります。
2) 役員、大臣などのクラス名を指定する構成ファイルを用意し、Serve()
呼び出されるたびに and を使用Class.forName()
しClass.newInstance()
てクラスのオブジェクトを作成します。新しい政府は、そのメンバーのクラスと構成ファイルを作成するだけで済みます。main()
すべての政府に1 つのシングルがあります。
純粋にパフォーマンスの観点から - どちらが優れており、その理由は何ですか? 私の主な懸念事項は次のとおりです。
a)forName()
コストのかかる検索を毎回実行しますか? クラスの非常に大きな宇宙を仮定します。
b) 動的クラスで、ケース 1 では実行される可能性があるがケース 2 では実行されない可能性のあるコンパイラーの最適化を見逃していますか?