
Commons-Discovery.jarとは一体どういう働きをしているのでしょうか?
公式http://commons.jakarta.jp/discovery/を読んだのですが
クラスのインスタンス化やシングルトン(ファクトリ)クラスのライフサイクルの管理…という記述と
三行目以降の所与のJavaインターフェースを実装するクラスの場所を確認します…という記述の関連性が分かりません。
一体Commons-Discoveryはどういう働きをするものなのでしょうか?
No.1ベストアンサー
- 回答日時:
使ったことはないのですが、あるインターフェースを与えられたときに、その実装クラスを引っ張ってくるのに使えるみたいですね。
dependency injection, factory patternあたりで検索すると、なんでそんなことが必要なのか情報が見つかるかもしれません。
簡潔に書けば、このようなツールを提供する意図は、オブジェクトの生成(や削除)を隠蔽化するところにあると思います。
例えば、アイロン(Iron)というインターフェースがあるプログラムで、Iron iron = new ToshibaIron();と書かれていたら、Sanyoのアイロンを使いたくなったらnewしてるところを全部書き換えないといけません。Discoveryを使うと、java -DIron=ToshibaIron Mainのようなことができます。
また、アイロンが熱くなるまでかなり電気代がかかることから、5台のアイロンを余熱して、複数のコンポーネント間で使いまわしたいということになれば、また大変な作業になります。
しかし、あらかじめ((Iron)discover.newInstance(Iron.class)).makeMySuitLookGreat();なんて書いておけば、どういう風にインスタンスを使いまわそうが、ここのコードは変更する必要がなくなり、アプリケーションが変更に強くなります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Javaで下線
-
(vba)他のアプリケーションの右...
-
ゲッターを使わないで変数にア...
-
インタフェースのstatic変数(Java)
-
VB DLLプロジェクトについて
-
中学のクラス数
-
「タイプ初期化子が例外をスロ...
-
インスタンス参照でアクセスで...
-
ヒグマを撃退
-
C#において、同じインスタンス...
-
VBScriptからストアドプロシー...
-
String.containsの反対機能はあ...
-
eclipse-Tomcatでのデバッグに...
-
private static という変数の修飾
-
PDFファイルから別ウィンドウで...
-
【sendkeysメソッドが動かずに...
-
サーブレットコンテキストの意...
-
0歳児の指しゃぶりに関して
-
ラジオボタンの選択判定
-
Androidの関数が呼び出されるタ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
(vba)他のアプリケーションの右...
-
ASP.NETでの共通コードの書き方...
-
オーバーライドとラッパーの違い
-
「継承されたメソッドの可視性...
-
C# 「データが失なわれる可能性...
-
メソッドの引数にクラス名を渡す
-
ゲッターを使わないで変数にア...
-
C#からDLLを呼びたいのですが・...
-
c++でのヘッダーファイルの循環...
-
interface,extend,implementの...
-
抽象クラスをJUNITでテストする...
-
Javaのインスタンス化の構文の...
-
【C#】クラスのコンストラクタ...
-
Excel vbaのプログラムでガンマ...
-
VB DLLプロジェクトについて
-
単体テストのテストケースにて...
-
デバッグ時に「Source not found」
-
「ラッパークラス」の存在意義...
-
Commons-Discovery.jarとは?
-
Ftpでの帯域制限の設定方法につ...
おすすめ情報