Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Web服务初始化应该使用什么设计模式?_Java_Design Patterns - Fatal编程技术网

Java Web服务初始化应该使用什么设计模式?

Java Web服务初始化应该使用什么设计模式?,java,design-patterns,Java,Design Patterns,我使用的是SOAP,初始化需要一些时间,所以我不想在每个请求中都使用SOAP。据我所知,单身是不适合这种情况的模式。我使用静态工厂方法,这在Java中的静态工厂方法是什么? 这是个好习惯吗 public class ServiceConnection { public static final int MAX_CONNS = 5; private static int totalConnections; public static Set<Service>

我使用的是SOAP,初始化需要一些时间,所以我不想在每个请求中都使用SOAP。据我所知,单身是不适合这种情况的模式。我使用静态工厂方法,这在Java中的静态工厂方法是什么? 这是个好习惯吗

public class ServiceConnection {
    public static final int MAX_CONNS = 5;

    private static int totalConnections;

    public static Set<Service> serviceIterator = new HashSet<>();

    private ServiceConnection(){
        totalConnections++;
    }

    public static Service getService(){
        if(totalConnections < MAX_CONNS){
            Service service = new Service();
            serviceIterator.add(service);
            return service;
        }else{
            return serviceIterator.iterator().next();
        }
    }
}
公共类服务连接{
公共静态最终int MAX_CONNS=5;
私有静态连接;
公共静态集serviceIterator=newHashSet();
专用服务连接(){
totalConnections++;
}
公共静态服务getService(){
if(总连接数<最大连接数){
服务=新服务();
添加(服务);
回程服务;
}否则{
返回serviceIterator.iterator().next();
}
}
}

为什么您认为
单例模式不合适?@npinti因为据我所知,当特定对象只有一个实例时,应该使用单例模式。拥有多个服务实例对我来说不是问题。如果我错了,请纠正我。您可以使用单例对象来管理服务池。这看起来很像注册表模式要解决的问题。。。