Java单子模式

来源:互联网 发布:游戏王主流 知乎 编辑:程序博客网 时间:2024/04/20 21:41

单子模式,顾名思义,就是在整个应用过程中只向外界提供唯一的一份实例。很多时候我们有这样的需求,譬如当我们在计算机上多次点击打开回收站或者某个PPT时,实际只会在我们面前呈现一个窗口。为啥?多开窗口浪费资源造成混乱啦。这就是单子模式的运用。

单子模式的JAVA实现有两种形式: 一种是饿汉式(较为常用),一种是懒汉式


两种不同实现方式的区别:

<1> 从资源利用的角度看,懒汉式是在调用其静态方法的时候才被实例化的,所以要比饿汉式稍好一些。  

<2> 从反映时间和速度上看,饿汉式在类加载的时候就得到了初始化,所以要比懒汉式好一些。

由上可见,创建一个单子类必须满足以下三个条件:

1.构造器私有

2.自己持有自身的一个静态引用

3.对外面系统提供访问唯一实例的公共静态接口(方法).



测试例子  用饿汉式实现

package signel;public class Sangle {    double db;    private static Sangle s = new Sangle();//定义一个私有的对象        private Sangle() //构造器私有    {        db = Math.random();    }        private static  Sangle getExample() //定义一个私有静态的方法获得唯一实例    {             return s;    }        public double getS() //测试是否为唯一实例    {        return db;    }        public static void main(String[] args)     {        Sangle s1 = Sangle.getExample();        Sangle s2 = Sangle.getExample();                System.out.println(s1.getS());        System.out.println(s2.getS());        System.out.println("由于只获得了一个实例,所以生成的随机数都是相同的!");    }}<span style="color:#ff0000;"></span>


0 0
原创粉丝点击