Java设计模式(三)单例模式

一、场景描述

在采集到仪器数据后,需要将数据发送到lims系统中,通过调用lims系统服务实现数据的上传。

在仪器数据采集组件中实现lims系统服务代理,该代理需要指定服务地址url,认证信息(用户名、密码)。

因此创建该代理需要耗费一些资源,另外该代理并不需要创建多个实例,此种情况下就可以使用单例模式,使得仅创建一个服务代理类实例。

二、实现示例

package lims.designpatterndemo.singletondemo;

public class LimsService {
    private static String url;
    private static String username;
    private static String password;
    //
    private static LimsService service = null;
    //私有构造函数
    private LimsService(){
        url = "http://serviceurl";
        username = "admin";
        password = "pswd";
    }
    public static LimsService getService(){
        if(service==null){
            service = new LimsService();
        }
        return service;
    }
    //
    public boolean uploadEquipmentData(String equipmentData){
        return true;
    }
}

调用示例:

package lims.designpatterndemo.singletondemo;

public class SingletonDemo {

    public static void main(String[] args) {
        boolean rst = LimsService.getService().uploadEquipmentData("");
        System.out.println(rst);
    }
}
原文地址:https://www.cnblogs.com/mahongbiao/p/8619975.html