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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 发现的眼睛 初级黑马   /  2015-7-13 14:00  /  458 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

关于单例设计模式我不理解这是干什么的,求讲解。


*/
//饿汉式。
/*
class Single
{

11 个回复

倒序浏览
单例设计模式:解决一个类在内存中只存在一个对象。保证唯一性:
        1.先控制禁止其他程序建立该对象。
        2.还为了其他程序可以为访问该类对象,在本类中自定义一个对象。
        3.为了方便其他其程序对自定义对象的访问,可以对外提供一些访问方式。
对应操作:
        1.将构造函数私有化。
        2.在本类中创建一个本类对象(私有并且static)。
        3.提供一个方法可以获取到该类对象。
构造函数私有化:
      私有构造函数只能在函数内部调用,外部不能实例化,所以私有构造函数可以防止该类在外部被实例化。

单例化有两种方式:饿汉式和懒汉式
    饿汉式:先初始化对象 ,A类一进入内存便建立一个对象
        class A {
        private A(){}
            private  static A s = new A();
            public static A getInstance(){
            return s;
        }
    }
    懒汉式:对象是方法调用时,才初始化:
    class A {
        private static A s = null;
        private A(){}
        public static A getInstance(){
            if(s==null)
                s = new A();
            return s;
         }
    }
补充(多线程部分内容):
    单例模式就是为了使用这个对象,那么一般使用饿汉式,且安全。
    单例设计模式中懒汉式:延迟加载。        
在多线程访问是会出现问题,会出现效率低下。使用双重否定来解决(减少锁的判断次数)。
    synchronized  同步。懒汉式加入以后比较慢。
    if(s == null){
        synchronized(A.class){
            if(s == null)
                {
                s = new A();
            }
        }
    }
大体是这样.....
回复 使用道具 举报
设计模式(Design pattern)简单来理解的话,其实就是前人所总结的一些经验和思想,给我们提供了从抽象到具体的方法。
使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。
回复 使用道具 举报
好像就是不让外界创建对象,而提供一个对象
回复 使用道具 举报
只允许内存中同时只存在一个对象而已
回复 使用道具 举报
大家回答的都很好
回复 使用道具 举报
又重新脑补了下。谢谢分享
回复 使用道具 举报
回顾一下
回复 使用道具 举报
就是这个类只能有自己内部建立的一个对象,外界不能建立,只能调用这个类里面的对象
回复 使用道具 举报
说的都很好    同时也温习了一下
回复 使用道具 举报
解释内容很详细,赞一个
回复 使用道具 举报
还没学,看一下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马