zoukankan      html  css  js  c++  java
  • 单例模式及getInstance()的用法

    一般在单例模式下使用.getInstance()创建对象;但并不是所有有私有构造方法,对外通过getInstance方法提供
    实例的情况就是单例模式。

    注:单例模式:一个类有且只有一个实例。
    1,一个私有的构造器
    2,一个私有的该类类型的变量
    3,必须有一个共有的返回类型为该类类型的方法,用来返回这个唯一的变量

    eg:
    public class Singleton{
        private Singleton(){}    //private 只能在自己内部供自己去访问
        private static Singleton instance=new Singleton();//在自己内部定义自己的一个实例
        public static Singleton getInstance(){         //此静态方法供外部直接访问
    return instance;
        }
    }

    判断Singelton一个类是否是单例模式:

    class Test{
        public static void main(String args[]){
    Singleton s1=Singleton.getInstance();
    Singleton s2=Singleton.getInstance();
    if(s1==s2)
    System.out.println("此类是单例模式");
    else
    System.out.println("此类不是单例模式");
        }
    }

    GetInstance与new区别:
    new的使用:如Object object = new Object(),这时候,就必须要知道有第二个public的Object构造方法的
    存在。


    GetInstance的使用:在主函数开始时调用,返回一个实例化对象,此对象是static的,在内存中保留着它
    的引用,即内存中有一块区域专门用来存放静态方法和变量,可以直接使用,调用多次返回同一个对象。


    (1)对象使用之前通过getinstance得到,而不需要自己定义,用完之后不需要delete;
    (2)new 一定要生成一个新对象,分配内存;getInstance() 则不一定要再次创建,它可以把一个已存在的
    引用给你使用,这在效能上优于new;
    (3) new创建后只能当次使用,而getInstance()可以跨栈区域使用,或者远程跨区域使用。所以getInstance()

    通常是创建static静态实例方法的。

  • 相关阅读:
    javascript
    自己动手、丰衣足食!<菜单导航栏------不简单>
    补---div渐变色条
    自己动手、丰衣足食!<箭头 → ← → ← ---2>
    自己动手、丰衣足食!<箭头 → ← → ← ---1>
    6.19 抽象类
    6.19 多态
    6.19 提纲
    6.18 继承
    6.18 (继承+(四类访问修饰符+程序集+静态方法))提纲
  • 原文地址:https://www.cnblogs.com/baxianhua/p/9341953.html
Copyright © 2011-2022 走看看