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で質問しましょう!
似たような質問が見つかりました
- 英語 【 英語 論理・表現 】 〇 なぜisが必要ないのか? 「私たちはこの発見をとても重要 だと考えまし 1 2022/05/12 22:07
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- 英語 commonsの意味を教えて下さい。 4 2022/09/05 14:31
- 宇宙科学・天文学・天気 ビッグバン宇宙論は間違っている可能性はないですか? 9 2023/02/25 12:07
- 政治 ローマ教会は反共集団ですか? 4 2022/05/09 07:16
- サッカー・フットサル 北海道コンサドーレ札幌の話 4 2022/11/01 18:34
- Java javaのクラスの分け方について質問です。 APIの内部用と外部用でクラスを分けたいのですがインター 2 2022/04/26 16:06
- 医療・安全 今どきマスクするって何これ 12 2023/04/21 11:06
- 物理学 高エネルギー水素の電子雲について 6 2023/06/10 09:04
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/17 18:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「IOException は対応する try ...
-
抽象クラスをJUNITでテストする...
-
interface,extend,implementの...
-
C# 「データが失なわれる可能性...
-
【設計思想の質問】staticメソ...
-
なぜForm型にキャストするので...
-
JavaにListElement型ってあるん...
-
Javaのインスタンス化の構文の...
-
「ラッパークラス」の存在意義...
-
ASP.NETでの共通コードの書き方...
-
Commons-Discovery.jarとは?
-
本当にオブジェクト指向プログ...
-
エクセルVBAで、条件に一致する...
-
EXCEL VBAにて動的にCheckBOXを...
-
「タイプ初期化子が例外をスロ...
-
public static void main (Stri...
-
Labelコントロールに数字を代入...
-
C# 点の描き方をおしえてくだ...
-
private static という変数の修飾
-
mainメソッドのthrows節で設定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
interface,extend,implementの...
-
(vba)他のアプリケーションの右...
-
抽象クラスをJUNITでテストする...
-
「ラッパークラス」の存在意義...
-
ASP.NETでの共通コードの書き方...
-
JTextFieldの入力制限
-
「継承されたメソッドの可視性...
-
C# 「データが失なわれる可能性...
-
VB DLLプロジェクトについて
-
c++でのヘッダーファイルの循環...
-
【C#】クラスのコンストラクタ...
-
メソッドの引数にクラス名を渡す
-
ファイルパスが取得出来ない(P...
-
「IOException は対応する try ...
-
ゲッターを使わないで変数にア...
-
Javaのインスタンス化の構文の...
-
オーバーライドとラッパーの違い
-
vb.net 自作プロパティの削除に...
-
なぜインタフェースを使うのか?
-
VBがオブジェクト指向言語でな...
おすすめ情報