サーバーの接続プロパティを提供するインターフェースがあるとします。
public interface ServerConfig {
String getHostname();
int getPort();
}
任意のソース (アプリケーション引数、システム プロパティ、外部構成ファイルなど) から値を返す、実行時に上記のインターフェイスの実装クラスを動的に作成する方法はありますか?
具体的には.properties
、次の内容のファイルがあるとします。
hostname = localhost
port = 80
とメソッド
ServerConfig fromFile(String filename);
このメソッドを呼び出すと、引数で指定されたファイルServerConfig
から値を返すの動的に生成された実装のインスタンスが返されます。.properties
filename
説明:
目標は、メソッドが外部ソース (つまり.properties
ファイル) で指定された値を毎回手動で実装することなく返す追加のインターフェイスを追加できるようにすることです。簡単な解決策は、呼び出されるインターフェイス メソッド名のプロパティ値と一致するプロパティ値を返すインターフェイスの実装を作成することです。つまり、呼び出しgetHostname()
はプロパティの値を返し、他のインターフェイスからのhostname
呼び出しはプロパティの値getBla()
を探して返すbla
、などです。 .