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

    设计模式是前辈们在多年开发工作中经验的总结,可以提高代码的重用性,可靠性格规范性,让代码更加容易理解,而单例模式是最简单,最常用的设计模式之一。基本的设计模式有23种;

    单例模式中有饿汉模式和懒汉模式;

    /*

    *应用的场合:有些对象只需要有一个就足够了

    *作用:保证整个应用程序某个实例有且仅有一个

    *类型:饿汉模式和懒汉模式

    */

    /*

    *饿汉模式

    *当要创建一个对象时,都会调用这个类的构造方法;如果一个类没有指定构造方法;就会调用系统**默认的构造方法;、

    */

    package com

    public class Singleton{

    //1.将构造方法私有化,不允许外部直接创建对象;

      private Singleton(){

      }

    //2.创建类的实例。类的唯一实例;使用private static修饰;在Singleton加载的时候就会执行;创建一个类的实例;

    private statice Singleton instance = new Singleton();

    //3.提供一个用于获取实例的方法;使用public static 修饰;

     public static Singleton getInstace (){

      return instance;

    }

    }

    /*懒汉模式*/

    package com

    public class Singleton2{

      //将构造方法私有化,不允许外边直接创建;

      private Singleton2(){

      }

      //创建类的唯一实例。使用private static修饰;当类加载的时候并没有去

      // 创建这个唯一的实例;而是当用户去获取的时候才去创建;

      private static Singleton2 instance;

      //3.用于获取实例的方法;

      public static Singleton2 getIntace(){

        if(instance == null){

          instance = new Singleton2();

        }

        return instance;

      }

    }

    public class test{

      public void main(String[] args){

      Singleton s1 = Singleton.getInstace()  ;

      Singleton s2 = Singleton.getInstace() ;

      if(s1==s2){

      System.out.print("s1和s2是同一个实例")

      }else{

        System.out.print("s1和s2不是同一个实例")

      }

      }

    }

    /*

    饿汉模式的特点是加载类时比较慢,但在运行时比较快;(线程安全)

    懒汉模式的特点是加载类时比较快,但在运行时比较慢;(线程不安全)

    */

  • 相关阅读:
    bzoj 4012: [HNOI2015]开店
    POJ 1054 The Troublesome Frog
    POJ 3171 Cleaning Shifts
    POJ 3411 Paid Roads
    POJ 3045 Cow Acrobats
    POJ 1742 Coins
    POJ 3181 Dollar Dayz
    POJ 3040 Allowance
    POJ 3666 Making the Grade
    洛谷 P3657 [USACO17FEB]Why Did the Cow Cross the Road II P
  • 原文地址:https://www.cnblogs.com/zht0915/p/4638628.html
Copyright © 2011-2022 走看看