• 单例设计模式


    今天学习了一下单例设计模式,什么是单例设计模式呢?就和古代时候只能有一个皇帝一样,有些时候我们会要求某个类只能有一个对象实例,例如工具类。那么如何实现呢?

    正常的一个类定义如下:
    1. class SingleTon{
    2. }
    在构造对象实例的时候我们使用new SingleTon(),那么这样就可以构建多个对象实例,为了不让用户可以任意的构建对象,这里我们把类的默认构造函数重写一下并声明为private,问题又来了,这样做的话会导致一个对象也new不了。为了解决这个问题,可以在类的内部new一个类对象,这就产生了单例设计模式的两种方法,“饿汉式”和“懒汉式”。

    “饿汉式”SingleTon类定义如下:
    1. class SingleTon1{
    2. private SingleTon1(){
    3. }
    4. public static SingleTon instance = new SingleTon1();
    5. }
    "懒汉式":
    1. class SingleTon2{
    2. private SingleTon2(){
    3. }
    4. private static SingleTon2 instance;
    5. public static SingleTon2 getInstance() {
    6. if (instance == null) {
    7. instance = new SingleTon2();
    8. }
    9. return instance;
    10. }
    11. }
    饿汉式和懒汉式的区别在于什么时候实例化instance对象,饿汉式在类加载的时候就实例化了instance对象,而懒汉式只有在第一次调用getInstance函数是才实例化instance对象,所以饿汉式在类加载的时候比较慢而在外面使用instance的时候比较快,相反,懒汉式则在类加载的时候比较快而在第一次使用getInstance的时候比较慢。




  • 相关阅读:
    c#备忘知识点
    [置顶] IE6支持的滑动菜单栏
    摩斯电碼中英文对照表
    2013年5月15日星期三
    2013年5月9日星期四
    2013年5月12日16:20:43母亲节
    2013年5月8日星期三
    JS前端DOM中Range疑问
    2013年5月14日星期二
    2013年5月13日星期一
  • 原文地址:https://www.cnblogs.com/starlitnext/p/4092988.html
Copyright © 2020-2023  润新知