A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

  16. //懒汉式
  17. class Bank{
  18.         private Bank(){}
  19.        
  20.         private static Bank instance = null;
  21.        
  22.         public static Bank getInstance(){
  23.                 if(instance == null){//可能存在线程安全问题的!
  24.                         instance = new Bank();               
  25.                 }       
  26.                 return instance;
  27.         }
  28. }
复制代码



1 个回复

倒序浏览
自己顶一个。。。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马