我用Java编写了一个小型HTTP服务器,并且遇到了将静态变量(服务器配置:端口,根等等)传递给处理请求的线程的问题。我不想让我的线程修改这些变量,如果它扩展了服务器类,它也会继承我不想要的方法。将静态字段传递给线程
由于性能原因,我不想使用getter。如果我使静态成员最终,我将有一个问题时,从配置文件加载它们的值。
这里是一个例子
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
}
我也不想有工人为嵌套类。它在另一个包...
你有什么建议?
先对它进行正确的编码(即使用getters和所有内容),稍后可能会担心性能。 – biziclop 2012-04-18 21:30:02
这些应该是'HTTPServer'的常规非静态final字段,作为构造函数参数传入。另外,不要过早优化 - 除非另有分析,否则获得者几乎不需要花费任何代价。 – 2012-04-18 21:46:10
在我看来,你问我们如何使它完全混乱的指针。 – 2012-04-18 22:02:18