新技术论坛
搜索
查看: 1056|回复: 0
打印 上一主题 下一主题

[Java] JAVA 单例模式完全剖析

[复制链接]
  • TA的每日心情
    开心
    2016-12-9 18:18
  • 签到天数: 85 天

    连续签到: 1 天

    [LV.6]常住居民II

    扫一扫,手机访问本帖
    楼主
    跳转到指定楼层
    发表于 2016-6-12 22:01:25 来自手机 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    单例模式用于保证在程序的运行期间某个类有且仅有一个实例。其优势在于尽可能解决系统资源。通过修改构造方法的访问权限就可以实现单例模式。

    所谓单例就是所有的请求都用一个对象来处理,比如我们常用的service和dao层的对象通常都是单例的,而多例则指每个请求用一个新的对象来处理,比如action。单例其实就在内存中该对象只有一个内存对应地址。无论你多少个线程访问那个对象,都是同一个地址,这样会更加节省内存。

    与之相对,多例就是一个类可以创建多于一个实例,可以每次调用创建一个实例,用完丢弃,或者维护一个实例池,每次调用从实例池取用。
    代码如下

    public class Single {
        private static Single  single = null;// 声明一个引用
        private Single() {// 将构造方法私有
        }
        public static Single  getInstance() {// 实例化引用
            if (single == null) {
                single = new Single();
            }
            return single ;
        }
        public void getName() {
            System.out.println("java联盟:javalm");
        }
    }
    public class Test {
        public static void main(String[] args) {
      
            Single  s1 = Single .getInstance();// 创建对象
            emperor1.getName();

            Single s2 = Single .getInstance();// 创建对象
            emperor2.getName();

            Single  s3 = Single .getInstance();// 创建对象
            emperor3.getName();
        }
    }



    高级模式
    B Color Image Link Quote Code Smilies

    本版积分规则

    手机版|Archiver|开发者俱乐部 ( ICP/ISP证:辽B-2-4-20110106号 IDC证:辽B-1-2-20070003号 )

    GMT+8, 2024-12-23 00:24 , Processed in 0.112847 second(s), 18 queries .

    X+ Open Developer Network (xodn.com)

    © 2009-2017 沈阳讯网网络科技有限公司

    快速回复 返回顶部 返回列表