单例模式是23中设计模式中最简单的一种设计模式
单例模式能解决什么问题呢?
- 为了保证JVM中某一类型的对象永远只有一个
为什么使用单例模式呢?
- 节省内存开销
怎么实现单例模式呢?
- 将构造方法私有化
- 对外提供一个获取单例对象的静态方法
单例模式的分类
- 懒汉式单例模式:使用时才创建对象
- 饥饿式单例模式:在类加载的时候就创建对象
懒汉式单例模式的案例
class User {
private static User user;
private User() {}
public static User createUser() {
if (user==null) user=new User();
return user;
}
}
public class UserTest {
public static void main(String[] args) {
User user1=User.createUser();
User user2=User.createUser();
System.out.println(user1==user2);//输出true
}
}
饥饿式单例模式的案例
class User {
private static User user=new User();
private User() {}
public static User createUser() {
return user;
}
}
public class UserTest {
public static void main(String[] args) {
User user1=User.createUser();
User user2=User.createUser();
System.out.println(user1==user2);
}
}