您的位置:首页 > 编程语言 > Java开发

Java单例模式

2017-01-16 20:45 344 查看
单例模式有两种:懒汉模式 和 饿汉模式

懒汉模式:类加载是不完成初始化工作,只有在获取调用获取实例对象时,才进行初始化,也就是用到了延迟策略

饿汉模式 :在类加载时就完成了初始化

例1:饿汉模式

package session.login;

import java.util.Enumeration;
import java.util.Vector;

/**
* 文件名称: UserList.java
* 编写人: yh.zeng
* 编写时间: 17-1-5 下午7:48
* 文件描述: 已登录的用户列表
*/
public class UserList
{
private static UserList userList = new UserList();

private Vector<String> v = null;

private UserList(){
v = new Vector<String>();
}

public static UserList getInstance(){
return userList;
}

public void addUser(String userName){
if(userName != null && !v.contains(userName)){
v.add(userName);
}
}

public void removeUser(String userName){
if(userName != null){
v.remove(userName);
}
}

public Enumeration<String> getUserList(){
return v.elements();
}

public int getUserCount(){
return v.size();
}

}


例2:懒汉模式

package session.login;

import java.util.Enumeration;
import java.util.Vector;

/**
* 文件名称: UserList.java
* 编写人: yh.zeng
* 编写时间: 17-1-5 下午7:48
* 文件描述: 已登录的用户列表
*/
public class UserList
{
private static UserList userList = null;

private Vector<String> v = null;

private UserList(){
v = new Vector<String>();
}

public synchronized static UserList getInstance(){
if(userList == null){
userList = new UserList();
}
return userList;

}

public void addUser(String userName){
if(userName != null && !v.contains(userName)){
v.add(userName);
}
}

public void removeUser(String userName){
if(userName != null){
v.remove(userName);
}
}

public Enumeration<String> getUserList(){
return v.elements();
}

public int getUserCount(){
return v.size();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: