zoukankan      html  css  js  c++  java
  • Java基础 | Java单例模型 | 06

    设计模式概述

    设计模式:是一种代码的总结,是软件开发人员在软件开发过程中面临的一般问题的解决方案。

    • 反复使用
    • 经过分类编目
    • 代码设计经验
    • 多数人知晓

    下面是分类的23种设计模式。

    单例模式的定义和作用

    单例模式

    • 目的 使得类的一个对象称为该类系统种的唯一实例
    • 定义 一个类有且仅有一个实例,并且自行实例化向整个系统提供(也就是自行创建实例,并提供给外部使用)

    单例模式可以分为懒汉式和饿汉式。
    懒汉式就是创建对象时比较懒,先不急着创建对象,在需要加载配置文件的时候再去创建。
    饿汉式就是在系统初始化的时候我们已经把对象创建好了,需要用的时候直接拿过来用就好了。

    饿汉式的代码实现

    package com.imooc.singleton;
    
    //饿汉式:创建对象实例的时候直接初始化  空间换时间
    public class SingletonOne {
    	// 1、创建类中私有构造
    	private SingletonOne() {
    
    	}
    
    	// 2、创建该类型的私有静态实例
    	private static SingletonOne instance = new SingletonOne();
    
    	// 3、创建公有静态方法返回静态实例对象
    	public static SingletonOne getInstance() {
    		return instance;
    	}
    }
    
    

    测试代码表示两个对象getInstance()的是同一个对象。

    懒汉式的代码实现

    package com.imooc.singleton;
    //懒汉式:类内实例对象创建时并不直接初始化,直到第一次调用get方法时,才完成初始化操作
    //时间换空间
    public class SingletonTwo {
    	//1、创建私有构造方法
    	private SingletonTwo(){
    		
    	}
    	
    	//2、创建静态的该类实例对象
    	private static SingletonTwo instance=null;
    	
    	//3、创建开放的静态方法提供实例对象
    	public static SingletonTwo getInstance(){
    		if(instance==null)
    			instance=new SingletonTwo();
    		
    		return instance;
    	}
    }
    
    

    饿汉式 VS 懒汉式

    单例模式的特点及适用场景

    小结

    什么是设计模式?

    设计模式:是一种代码的总结,是软件开发人员在软件开发过程中面临的一般问题的解决方案。
    * 反复使用
    * 经过分类编目
    * 代码设计经验
    * 多数人知晓
    

    单例模式

    单例模式
    *   目的 使得类的一个对象称为该类系统种的唯一实例
    *   定义 一个类有且仅有一个实例,并且自行实例化向整个系统提供(也就是自行创建实例,并提供给外部使用)
    
    实现
    * 只提供私有的构造方法
    * 含有一个该类的静态私有对象
    * 提供一个静态的公有的方法用于创建、获取静态私有对象
    
    
    单例模式可以分为懒汉式和饿汉式。
    懒汉式就是创建对象时比较懒,先不急着创建对象,在需要加载配置文件的时候再去创建。
    饿汉式就是在系统初始化的时候我们已经把对象创建好了,需要用的时候直接拿过来用就好了。
    
  • 相关阅读:
    你好,2021!
    庚子走,辛丑来,愿一切安好!
    花魂鸟魂总难留,鸟自无言花自羞
    熟悉的小胡同
    夜半听鼾声
    写在儿子22岁生日
    vue配置Azure Artifacts npm包源
    RabbitMQ出错:AMQP close-reason, initiated by Peer, code=530的解决办法
    .NET MVC存储图片到数据库的解决方案
    EF Core解决报错’EntityTypeBuilder未包含“ToTable”的定义‘的方法
  • 原文地址:https://www.cnblogs.com/Rowry/p/15160291.html
Copyright © 2011-2022 走看看