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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 想做开发 中级黑马   /  2014-7-20 20:08  /  1183 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

能不能谈一下你们关于单例设计模式的理解,天气热,看得晕晕乎乎的。。。

9 个回复

倒序浏览
方法中只能有一个对象       采取措施来确保这种行为
回复 使用道具 举报
单例设计模式的根本原因是  保证 这个类在内存中是唯一的。根本原因是要节省内存。
怎么保证是唯一的呢?三个步骤
1 。私有化构造函数。你把构造函数私有化了 。其他类访问部到构造函数,就不能创建对象
2 ,在本类中创建一个自己的对象。(要用private 私有化对象)
3.  定一个方法,返回自己的对象
个人的理解,不对的体谅哈。
回复 使用道具 举报
java—family 发表于 2014-7-20 21:28
单例设计模式的根本原因是  保证 这个类在内存中是唯一的。根本原因是要节省内存。
怎么保证是唯一的呢?三 ...

多谢哈  
回复 使用道具 举报
其实你在看视频的时候多去想知识点之间的联系,如果前面都知道了,单例模式很容易知道,每步为啥那么做。当不懂的时候,可以去翻看前面的视频。也可以带着问题继续看,当你把一些知识串起来,自然就OK
回复 使用道具 举报
hejinzhong 发表于 2014-7-20 21:34
其实你在看视频的时候多去想知识点之间的联系,如果前面都知道了,单例模式很容易知道,每步为啥那么做。当 ...

恩恩  看视频看得有点混乱   谢谢哈
回复 使用道具 举报
wubing 初级黑马 2014-7-20 22:24:03
7#
最近刚学完单例设计模式
public class SingleDemo {
        Single s = Single.getInstance();
        Single s1 = Single1.getInstance();

}

/*
* 单例设计模式 饿汉式写法
*/
class Single {
        private Single() {
        }

        private static final Single s = new Single();

        public static Single getInstance() {
                return s;
        }
}

/*
* 单例设计模式 懒汉式写法
*/
class Single1 {
        private Single1() {
        }

        private static Single1 s = null;

        public static Single1 getInstance() {
                if (s == null)
                        s = new Single1();
                return s;

        }

}


回复 使用道具 举报
J.twt 中级黑马 2014-7-20 23:05:40
8#
保证对象唯一性,开发用饿汉式,面试用懒汉式,因为你涉及到线程和锁的问题
回复 使用道具 举报
慕杰 初级黑马 2014-7-20 23:31:31
9#
这个你先别看什么代码啊什么的,先从字面上理解,单例模式顾名思义就是这个类不管怎样只能有一个实例即对象,怎么样让所有调用者拿到的都是一个对象呢?1、首先在这个类里面设计个该类类型的私有静态成员变量instance;什么作用呢?当然是让类加载的时候就在方法区里面存在的变量,随着类的消失而消失,这样调用类拿到的就始终是这一个变量;2、有个私有的构造器,为什么呢?因为不希望外界通过new constructor()的方式创建对象,这样创建出来的对象肯定不是唯一一个,因为堆地址不同;3、不让访问成员变量,还不让访问构造器,那怎么获取对象呢?当然是给外部提供公共的访问方式,然后返回那个成员变量了,那就是getInstance()方法;又因为该类不能创建对象,所以不能用对象调用该获取单例的方法,改为static的用类直接调用即可,这样就实现了单例模式;至于饥饿类型单例模式,其实就是他这个类饿啊,想吃东西,怎么办呢?就是让成员变量声明时就创建一个对象,然后getInstance直接返回就行;           懒汉模式就是:这人很懒,总是拖拖拉拉的,非得老板什么时候要成果的时候再去做这件事,所以一开始先不做创建对象的操作,等类调用的时候再通过getInstance返回对象。我的理解大致就是这样,听不明白再回复我。。
回复 使用道具 举报
Adjin 中级黑马 2014-7-21 09:41:46
10#
不让外界建立对象
向外提供一个对象
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马