单例模式 - 程序实现(Java)

    我们知道单例模式,其实就是返回一个被调用类的实例。

    在频繁的进行实例(Instance)创建过程,难免过多的进行new InstanceName();我们可以只通过调用一个方法解决。

    在进行设计模式的程序实现中xiaobin使用已编写的SSL程序做演示。

    ------------------------------------------------------------------------------------------tdtc tech-----------------------------------------------------

    目   的:建立SSL连接

    类   图:

 

    源   码:

public class ConnectionSSL {
	
	private final int DEFAULT_PORT = 7000;
	public final String algorithm = "SSL";
	private int port;
	private String propertyPath;
	private String keyPath;
	
	private static ConnectionSSL conn = new ConnectionSSL();
	
	private ConnectionSSL() {
		// TODO Auto-generated constructor stub
		propertyPath = getPropertyPath();
		
		port = getPort(propertyPath);
		if(port == 0) {
			port = DEFAULT_PORT;
		}
		keyPath = getKeyPath(propertyPath);
	}
	
	public static ConnectionSSL getInstance() {
		return conn;
	}

	private String getPropertyPath() {
		String path = System.getProperty("user.dir") 
			+ File.separator + "port.properties";
		return path;
	}

	private String getKeyPath(String filePath) {
		Properties p = new Properties();
		try {
			p.load(new FileInputStream(filePath));
		} catch (Exception e) {
			// TODO: handle exception
		}
		String path = p.getProperty("key");
		
		return path;
	}
	
	private int getPort(String filePath) {
		Properties p = new Properties();
		try {
			p.load(new FileInputStream(filePath));
		} catch (Exception e) {
			// TODO: handle exception
		}
		
		//p.clear();
		String strPort = p.getProperty("port");
		int port = Integer.parseInt(strPort);
		
		return port;
	}
}

 

posted @   jlins  阅读(307)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示