黑马程序员技术交流社区

标题: 单例模式,以后学到javaweb就会用到了 [打印本页]

作者: huangjiawei    时间: 2015-7-19 23:36
标题: 单例模式,以后学到javaweb就会用到了
基础知识有很多细枝末节用不上,不过这个单例模式会用上。别看现在没现在卵用,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. }
复制代码




作者: huangjiawei    时间: 2015-7-20 00:14
自己顶一个。。。。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2