基础知识有很多细枝末节用不上,不过这个单例模式会用上。别看现在没现在卵用,javaweb的核心之一sevlect就是采用的单例模式,当老师讲到的时候有个心理准备。
1.解决的问题:如何只让设计的类只能创建一个对象
2.如何实现:饿汉式 & 懒汉式
//饿汉式1
- class Bank{
- //1.私有化构造器
- private Bank(){}
- //2.创建类的对象,同时设置为private的,通过公共的来调用,体现封装性
- //4.要求此对象也为static的
- private static Bank instance = new Bank();
- //3.此公共的方法,必须为static
- public static Bank getInstance(){
- return instance;
- }
- }
复制代码- //饿汉式2
- class Bank{
- //1.私有化构造器
- private Bank(){}
- //2.创建类的对象,同时设置为private的,通过公共的来调用,体现封装性
- //4.要求此对象也为static的
- private static Bank instance = null;
- static{
- instance = new Bank();
- }
- //3.此公共的方法,必须为static
- public static Bank getInstance(){
- return instance;
- }
- }
- //懒汉式
- class Bank{
- private Bank(){}
-
- private static Bank instance = null;
-
- public static Bank getInstance(){
- if(instance == null){//可能存在线程安全问题的!
- instance = new Bank();
- }
- return instance;
- }
- }
复制代码
|
|