Javaで小さなHTTPサーバーを作成しましたが、要求を処理するスレッドに静的変数(サーバー構成:ポート、ルートなど)を渡すときに問題があります。スレッドにこれらの変数を変更させたくないのですが、サーバークラスを拡張しても、私が望ましくないメソッドを継承します。スレッドに静的フィールドを渡す
私はパフォーマンスの理由からゲッターを使いたくありません。静的メンバーを最終的にすると、設定ファイルから値をロードするときに問題が発生します。ここ
は、私はまた、入れ子になったクラスとして労働者を持っている必要はありません例
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
}
です。別のパッケージに入っています...
あなたは何を提案しますか?
最初にコードを正しく(ゲッターとすべてを使用して)コードすると、後でパフォーマンスが心配することがあります。 – biziclop
これらはコンストラクタパラメータとして渡される 'HTTPServer'の通常の静的ではない最終フィールドでなければなりません。また、早すぎるものを最適化しないでください。ゲッターの費用はほとんどありません。 –
私の意見では、あなたはそれから完全な混乱を作る方法についての私たちに尋ねます。 –