单例与static的一些讨论
来源:互联网 发布:obs视频录制软件 编辑:程序博客网 时间:2024/05/01 16:00
1.static的对象一样可以被重定向啊,而单例除了static的引用外啊,最主要的是单例的构造器是private的啊,这样其他人都不可以new它了,不可以new这才是单例的核心思想所在吧。就是任何时候都只有一个,static虽然你可以随时使用,但是还是有被人new的可能。
private 构造器让人不可以new,通过get获取static对象的引用,这样可以保证任何时候都只有一个该对象的实例。
而static只是一个静态的对象,使用方便而已,并没有对那个对象任何的限制。和单例模式差了很多 .
举个例子,你是个程序员,你希望任何时候有一个class A的实例就可以了,所以你在你的class B里封装了一个A的对象
class B
{
static A a = new A();
}
这样以后所有代码大家都可以使用B.a来调用A里的方法。很方便,可是没几个月你走了,换我接手
我想使用A里的方法,可是也许我根本就没有你的API,我不知道B里已经有了一个static的A,因此我在我的class C里
class C
{
public void getA
{
A a =new A();//这个时候整个工程下出现了2个A的对象已经违背了你当初的设计,以后可能还会有更多的人new A();
//但是如果你当时把A设计成的单例,就不会出现这样尴尬的局面了
}
}
2.使用单例模式可以限制对象实例的个数,除了返回实例的操作之外不能被new出来。这在某些需要限制对象访问的场合下是有用的。
使用static的话并不能限制对象实例的个数。
3.单例模式最大的好处就是节省内存空间,提高效率,因为他永远都只有一个实例!而static有还是有可能被new出多个实例的,而这多个实例在用完之后也许就没用了,还要等待垃圾回收机制来回收,所以效率自然不如单例。
- 单例与static的一些讨论
- python的单例模式与讨论
- 单例模式与static的区别
- 关于单例模式的一些讨论(实现单例模式)
- 单例模式的讨论
- 单例的扩展性讨论
- static与单例模式
- 单例与static函数
- JAVA Static方法与单例模式的理解
- JAVA Static方法与单例模式的理解
- 关键字static与单例模式的一点理解
- 单例模式的深入讨论
- java单例模式的讨论
- static与设计模式:单例模式
- 关于static的相关讨论:
- 单例模式(3)- 饿汉式单例与懒汉式单例的讨论
- extern与static的一些用法
- LR的一些讨论
- LWUIT 一些细节疑难杂症整理笔记
- 文件传输协议(中文版)(三)
- javascript window.open() 用法说明
- Windows Mobile开发的文章精华收藏-二
- 文件传输协议(中文版)(四)
- 单例与static的一些讨论
- 计算机经典书籍
- [J2ME]url请求返回参数非法(java.lang.illegalArgument)
- JDK Logger指定配置文件
- memcpy 用法
- 教务系统——班级管理——全部代码
- 三年不重装:令电脑百毒不侵的13个妙招
- asterisk学习笔记8--voicemail
- 谈关于mysql中文模糊查找问题