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();
}
}
懒汉模式:类加载是不完成初始化工作,只有在获取调用获取实例对象时,才进行初始化,也就是用到了延迟策略
饿汉模式 :在类加载时就完成了初始化
例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();
}
}
相关文章推荐
- java单例模式
- java单例模式(Singleton pattern)
- Java单例模式
- Java单例模式Singleton
- 【CSDN常见问题解答】Java单例模式分析
- java单例模式的误导性
- JAVA单例模式
- java单例模式(下)
- java单例模式
- Java单例模式
- Java单例模式(singleton模式)
- 【Vish23n】Java设计模式之深入Java单例模式
- 深入java单例模式
- 一个JAVA单例模式的典型错误应用的分析和解决方法
- Java单例模式
- 可能是最全的Java单例模式讨论
- Java单例模式复习(三)
- java单例模式 Singleton
- 【JAVA笔记——道】深入Java单例模式
- Java单例模式的优缺点