当前位置:编程学习 > JAVA >>

单例模式的一点困惑

如果把一个类声明为静态类,这样也避免了多线程访问可能返回多个实例的问题。而且直接通过类名访问比先获得实例再调用方法方便点。在不考虑多态的情况下,声明静态类是不是比单例模式中通过静态方法返回一个唯一实例好一点? --------------------编程问答-------------------- 单例模式可以被继承,静态类不行 --------------------编程问答-------------------- 如果是用作工具类。不会再改动或者延伸的话,静态类也行。 --------------------编程问答-------------------- 你要定义静态类,只能在类中定义,只能声明静态内部类。
 定义这样的类 ,意义根本不大,

而且这样的类是可以实例化的。根本不能实现单例的效果。

所谓直接通过类名访问 是指 访问静态成员,
而 这些静态成员,在所有类的实例中时共享的。

你所阐述的定义一个静态类,优于 单例模式是不成立的。

类的静态成员在所有该类的实例中时共享 和 一个类只能创建一个实例(也就是单例),是不同的概念。



--------------------编程问答--------------------
引用 3 楼 ZuxiangHuang 的回复:
你要定义静态类,只能在类中定义,只能声明静态内部类。
 定义这样的类 ,意义根本不大,

而且这样的类是可以实例化的。根本不能实现单例的效果。

所谓直接通过类名访问 是指 访问静态成员,
而 这些静态成员,在所有类的实例中时共享的。

你所阐述的定义一个静态类,优于 单例模式是不成立的。

类的静态成员在所有该类的实例中时共享 和 一个类只能创建一个实例(也就是单例),是不同……
感觉很有道理,基础应该不错。请问你工作中用到设计模式的多吗?一般用到什么设计模式? --------------------编程问答--------------------
引用 4 楼 BaronZ 的回复:
引用 3 楼 ZuxiangHuang 的回复:你要定义静态类,只能在类中定义,只能声明静态内部类。
 定义这样的类 ,意义根本不大,

而且这样的类是可以实例化的。根本不能实现单例的效果。

所谓直接通过类名访问 是指 访问静态成员,
而 这些静态成员,在所有类的实例中时共享的。

你所阐述的定义一个静态类,优于 单例模式是不成立的。

类的静态成员……

也没用到什么特殊的,就是经常用的,工厂,抽象工厂,单例,之类的,还有特别一点就是
叫鸭子模式, --------------------编程问答--------------------
引用 5 楼 ZuxiangHuang 的回复:
引用 4 楼 BaronZ 的回复:引用 3 楼 ZuxiangHuang 的回复:你要定义静态类,只能在类中定义,只能声明静态内部类。
 定义这样的类 ,意义根本不大,

而且这样的类是可以实例化的。根本不能实现单例的效果。

所谓直接通过类名访问 是指 访问静态成员,
而 这些静态成员,在所有类的实例中时共享的。

你所阐述的定义一个静态类,优于 单例……

什么是鸭子模式?顺带一问,能不能帮我看看这个帖子?http://bbs.csdn.net/topics/390285690 --------------------编程问答--------------------
引用 6 楼 BaronZ 的回复:
引用 5 楼 ZuxiangHuang 的回复:引用 4 楼 BaronZ 的回复:引用 3 楼 ZuxiangHuang 的回复:你要定义静态类,只能在类中定义,只能声明静态内部类。
 定义这样的类 ,意义根本不大,

而且这样的类是可以实例化的。根本不能实现单例的效果。

所谓直接通过类名访问 是指 访问静态成员,
而 这些静态成员,在所有类的实例中时共享……

你的帖子不是有人回了吗,就那样递归呀,

DuckTyping 并不怎么常用,其实就是 只要有某个方法,就认为是某种类型,
说简单一点,就是 只要有呱呱叫这个方法,就认为是鸭子的对象, 其实返回的对象也是一个代理对象 --------------------编程问答-------------------- http://blog.csdn.net/laizhenhai88/article/details/7736408
看看这个单例,希望对你有帮助 --------------------编程问答-------------------- 呃。呵。我也想知道 --------------------编程问答-------------------- 你可以不用去敲那么多static --------------------编程问答--------------------
引用 7 楼 ZuxiangHuang 的回复:
引用 6 楼 BaronZ 的回复:引用 5 楼 ZuxiangHuang 的回复:引用 4 楼 BaronZ 的回复:引用 3 楼 ZuxiangHuang 的回复:你要定义静态类,只能在类中定义,只能声明静态内部类。
 定义这样的类 ,意义根本不大,

而且这样的类是可以实例化的。根本不能实现单例的效果。

所谓直接通过类名访问 是指 访问静态成员,
而 ……
--------------------编程问答-------------------- 静态类是共享内容,而单例是只能有一个实例.静态类是和非静态类对应的,而实例讲的是对类的实例化.两者有本质的区别. --------------------编程问答-------------------- 单例模式分为懒汉式、饿汉式、双重锁式。楼主说的是饿汉式;相比之下饿汉式比较好! --------------------编程问答--------------------
引用 4 楼 BaronZ 的回复:
Quote: 引用 3 楼 ZuxiangHuang 的回复:

你要定义静态类,只能在类中定义,只能声明静态内部类。
 定义这样的类 ,意义根本不大,

而且这样的类是可以实例化的。根本不能实现单例的效果。

所谓直接通过类名访问 是指 访问静态成员,
而 这些静态成员,在所有类的实例中时共享的。

你所阐述的定义一个静态类,优于 单例模式是不成立的。

类的静态成员在所有该类的实例中时共享 和 一个类只能创建一个实例(也就是单例),是不同……
感觉很有道理,基础应该不错。请问你工作中用到设计模式的多吗?一般用到什么设计模式?



模式不用想得太复杂,就是一些处理某类问题的惯用方式而已,要注重通过模式对思维的培养 --------------------编程问答--------------------
引用 3 楼 ZuxiangHuang 的回复:
你要定义静态类,只能在类中定义,只能声明静态内部类。
 定义这样的类 ,意义根本不大,

而且这样的类是可以实例化的。根本不能实现单例的效果。

所谓直接通过类名访问 是指 访问静态成员,
而 这些静态成员,在所有类的实例中时共享的。

你所阐述的定义一个静态类,优于 单例模式是不成立的。

类的静态成员在所有该类的实例中时共享 和 一个类只能创建一个实例(也就是单例),是不同的概念。

  这个好! --------------------编程问答-------------------- 如果是直接通过类名获得静态实例,那么就必须在类加载的时候就初始化静态实例变量。
而通过静态方法获得实例,就可以在需要获得实例时才初始化静态实例变量。这样理论上性能可以更宽松一些。 --------------------编程问答--------------------
引用 13 楼 huangxueyong86 的回复:
单例模式分为。 


懒汉式、饿汉式、双重锁式各在什么情况下使用?
补充:Java ,  J2ME
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,