栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java设计模式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java设计模式

面向对象的设计模式 23种基础模式(持续更新)


每种模式都有与之对应的原理

单例模式

单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。其属于创建型模式,它向我们提供一种创建对象的最佳方式。
其是将构造方法私有化,从而使得外部无法产生新的实例化对象,只能通过方法获取唯一的一个对象引用

特点:
1. 一个类中只有一个实例化对象
2. 必须自行创建实例
3. 必须在自行向整个系统提供实例
两种不同的形式:饿汉模式与懒汉模式
饿汉模式:即在创建对象时直接实例化。 ”线程安全“

public class SingletonMode {
    //创建唯一的静态实例
    private static SingletonMode instance = new SingletonMode();
    //私有化构造方法
    private SingletonMode(){

    }      
    //创建获取方法
    public static SingletonMode getInstance() {
        return instance;
    }
}

它是一种空间换时间的做法,无论你是否使用该实例,我先创建好该实例,使用时直接调用便好,这样在调用过程中就省去了开辟空间的操作了,可以节省时间,但不用是又造成垃圾产生。
使用场景:

- 如果在构造方法里写了性能消耗较大,占时较久的代码,比如建立与数据库的连接,那么就会在启动的时候感觉稍微有些卡顿
- 无论是否使用这个对象都立即加载

懒汉模式:需要调用对象是在实例化。 ”非线程安全“

public class SingletonMode {
    private static SingletonMode instance;
    private SingletonMode(){

    }

    public static SingletonMode getInstance() {
        if (instance == null){
            instance = new SingletonMode();
        }
        return instance;
    }
}

是一种时间换空间的做法,调用时在创建。

看业务需求,如果业务有比较充分的启动和初始化时间,就使用饿汉模式,否则就使用懒汉模式

单例模式优点:

  1. 内存中只有一个对象
  2. 避免频繁的创建销毁对象,提高了性能
  3. 避免对共享资源的多重占用

缺点:

  1. 扩展比较困难
  2. 若实例化后的对象长期不用,系统会默认其为垃圾并进行回收,造成对象状态丢失。

使用场景:

1、创建对象时占用资源过多,但同时又需要用到该类对象
2、对系统内资源要求统一读写,如:读写配置信息
3、当多个实例存在可能引起程序逻辑错误,如:号码生成器
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/458825.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号