Javaで小さなHTTPサーバーを作成しましたが、静的変数(サーバー構成:ポート、ルートなど)を要求を処理するスレッドに渡す際に問題が発生します。スレッドにこれらの変数を変更させたくありません。サーバークラスを拡張すると、不要なメソッドも継承されます。
パフォーマンス上の理由からゲッターは使いたくありません。静的メンバーをfinalにすると、構成ファイルから値をロードするときに問題が発生します。
これが例です
class HTTPServer {
static int port;
static File root;
etc..
....
//must be public
public void launch() throws HTTPServerException {
loadConfig();
while (!pool.isShutdown()) {
....
//using some config here
...
try {
Socket s = ss.accept();
Worker w = new Worker(s);
pool.execute(w);
}catch () {...}
}
}
private void loadConfig(){ //reading from file};
...
other methods that must be public goes here
}
また、ワーカーをネストされたクラスにしたくありません。別のパッケージに入っています...
何を提案しますか?