0

サーバーの接続プロパティを提供するインターフェースがあるとします。

public interface ServerConfig {
    String getHostname();

    int getPort();
}

任意のソース (アプリケーション引数、システム プロパティ、外部構成ファイルなど) から値を返す、実行時に上記のインターフェイスの実装クラスを動的に作成する方法はありますか?

具体的には.properties、次の内容のファイルがあるとします。

hostname = localhost
port = 80

とメソッド

ServerConfig fromFile(String filename);

このメソッドを呼び出すと、引数で指定されたファイルServerConfigから値を返すの動的に生成された実装のインスタンスが返されます。.propertiesfilename

説明:

目標は、メソッドが外部ソース (つまり.propertiesファイル) で指定された値を毎回手動で実装することなく返す追加のインターフェイスを追加できるようにすることです。簡単な解決策は、呼び出されるインターフェイス メソッド名のプロパティ値と一致するプロパティ値を返すインターフェイスの実装を作成することです。つまり、呼び出しgetHostname()はプロパティの値を返し、他のインターフェイスからのhostname呼び出しはプロパティの値getBla()を探して返すbla、などです。 .

4

1 に答える 1

2

そのようなことをする必要はありません。
インターフェイスを実装し、ファイル名をコンストラクターのパラメーターとして受け取る通常のクラスを作成するだけです。

于 2012-11-12T17:45:09.767 に答える