zoukankan      html  css  js  c++  java
  • 设计模式--单例设计模式

    设计模式是对问题行之有效的解决方案,它其实是一种思想。

    单例设计模式:

      解决的问题:可以保证一个类在内存中只能有一个对象。(比如多个程序使用相同的配置信息对象时,就需要保证对象的唯一性)

      如何保证唯一性:1、不允许其他程序用new创建类对象

              2、在该类中创建一个本类实例

              3、对外提供一个方法让其他程序可以获取该对象

        达成唯一性的步骤:

              1、私有化该类构造函数(private)

              2、通过new在本类中创建一个本类对象

               3、定义一个公有的方法,将创建的对象返回

    class Single
      {
        static Single s = new Single();
        private Single(){}
        public static Single getInstance()
        {
        return s;
        }
      }
    //调用对象的方式采用类名调用,类名调用的前提是调用静态方法,静态访问的内容必须是静态故static Single用静态修饰
    class SingleDemo
      {
        Single ss1 = Single.getInstance();
        Single ss2= Single.getInstance();
        System.out.println(ss1==ss2);
      }
    //输出结果为true也就说明对象唯一

    这种方式在类一 加载就会产生对象。也称作恶汉式单例模式。

    对应的懒汉式如下:

    懒汉式即类加载进来时,没有对象,只有调用geyInstance方式时,才会创建对象。(延迟加载形式)

    class Single2
      {
        static Single2 s = null;
     private Single2(){}
     public static Single2 getInstance()
     {

      if ( s == null )

        s = new Single2 ();

       return s;
     }
      }

    真实开发时饿汉式使用较多,因为懒汉式在用的时候如果碰见多线程问题有可能出现 对象的唯一性问题存在安全隐患。(面试时饿汉式碰见的多)

  • 相关阅读:
    自定义配置文件的使用
    网络编程入门建议
    SQL2005 表分区亲测
    数据库文件组小记
    eclipse 项目显示红叉
    Flex DataGrid可编辑对象实现Enter跳转
    excel 巧用功能
    ACCESS中查询语句:查询所得数据另存到一个指定目录下的文件夹里,并新建新的文件
    邮件合并 :处理ACCESS中批量查询语句的运行
    文件分类批处理程序
  • 原文地址:https://www.cnblogs.com/swp520lmg/p/7977970.html
Copyright © 2011-2022 走看看