Posted on 2008-12-20 18:12
鱼跃于渊 阅读(254)
评论(0) 编辑 收藏 所属分类:
设计模式
1 package com.givetop.singleton;
2
3 public class singleton {
4
5
6 public static void main(String[] args) {
7 Single.getSingleton().say();
8 }
9
10 }
11
12 class Single{
13 private static Single s = new Single();
14 public static Single getSingleton(){
15 return Single.s;
16 }
17 private Single(){
18
19 }
20 public void say(){
21 System.out.println("我开始说话了!");
22 }
23 }
24
//思想是: 所谓单例就是只有一个实例存在(把类的构造方法设为私有的,防止在类的外面new类的实例), 这样减少了内存的占有量, 而且还减轻了垃圾回收机制的负担!
下面看几个设计的不好的例子!
一.直接在类的内部设一个静态的该类的类型!
1 package com.givetop.singleton;
2
3 public class singleton {
4
5
6 public static void main(String[] args) {
7 Single.s.say();
8 }
9
10 }
11
12 class Single{
13 static Single s = new Single();
14 private Single(){
15
16 }
17 public void say(){
18 System.out.println("我开始说话了!");
19 }
20 }
该类虽然实现了只能new一个实例但 s 属性是default的, 破坏了类的封装, 算不上是好的类的设计!
好的方法是应该把该属性设为私有的, 然后在类里面提供一个公有的方法返回这个实例