• 单例模式饿汉式和懒汉式的实现


    单例模式的优点:

    只生成一个实例,减少了系统内存的开销

    单例的饿汉式实现

    优点:多线程时是线程安全的

    缺点:对象加载时间过长

     1 /*单例设计模式 某个类只能存在一个对象实例
     2 1.私有化类的构造器
     3 2.内部创建类的静态的对象
     4 3.提供类的静态的方法
     5 */
     6 public class test {
     7 public static void main(String[] args)
     8 {
     9     Bank bank1=Bank.getInstance();
    10     Bank bank2=Bank.getInstance();
    11     System.out.println(bank1==bank2);//true
    12 }
    13 
    14 }
    15 
    16 class Bank
    17 {
    18     //私有化类的构造器
    19     private Bank()
    20     {
    21         
    22     }
    23     //内部创建类的对象,对象也必须是静态的
    24     private static Bank instance=new Bank();
    25     //提供公共的静态的方法,返回类的对象
    26     public static Bank getInstance()
    27     {//建立对象需要类的构造器,但是被私有了,调用类返回对象的方法企图得到对象,但是需要先建立对象
    28     //这里将方法变成静态,就可以通过类直接调用
    29         return instance;//静态的方法只能调用静态的结构,所以创建的对象需为静态
    30     }
    31 }

    单例的懒汉式实现

    优点:延迟对象的加载

    缺点:目前的写法是线程不安全的,在多线程情况下需要改进

     1 /*单例设计模式 某个类只能存在一个对象实例
     2 1.私有化类的构造器
     3 2.声明当前类的静态对象,没有初始化
     4 3.声明public,static的返回当前类对象的方法
     5 */
     6 public class test {
     7 public static void main(String[] args)
     8 {
     9     Order order=Order.getInstance();
    10 }
    11 
    12 }
    13 
    14 class Order
    15 {
    16     //私有化类的构造器
    17     private Order()
    18     {
    19         
    20     }
    21     //声明当前类对象,没有初始化
    22     private static Order instance=null;
    23     //声明public,static的返回当前类对象的方法
    24     public static Order getInstance()
    25     {
    26         if(instance==null)
    27             instance=new Order();
    28         return instance;
    29     }
    30 }

    两者区别在于:饿汉式的类对象是及时创建的,懒汉式的类对象是需要时再创建的。

  • 相关阅读:
    ASP.NET MVC and jqGrid 学习笔记 5-添加数据
    Python学习笔记 第一课 列表
    Python学习笔记
    ASP.NET MVC and jqGrid 学习笔记 4-排序
    ASP.NET MVC and jqGrid 学习笔记 3-如何从数据库获得数据
    JS高级程序设计第三版——基本概念
    任务八:响应式网格(栅格化)布局
    任务七:实现常见的技术产品官网的页面结构及样式布局
    JSON Schema(模式)
    jquery选择器(转)
  • 原文地址:https://www.cnblogs.com/zuiaimiusi/p/10828287.html
Copyright © 2020-2023  润新知