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

2014-11-24 10:31:17 · 作者: · 浏览: 0

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

在频繁的进行实例(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;
}
}