单例模式 - 程序实现(Java)
我们知道单例模式,其实就是返回一个被调用类的实例。
在频繁的进行实例(Instance)创建过程,难免过多的进行new InstanceName();我们可以只通过调用一个方法解决。
在进行设计模式的程序实现中xiaobin使用已编写的SSL程序做演示。
------------------------------------------------------------------------------------------tdtc tech-----------------------------------------------------
目 的:建立SSL连接
类 图:
源 码:
[java]
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;
}
}
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;
}
}
补充:软件开发 , Java ,