设计模式

简介: 设计模式

1、单例模式

饿汉模式

优点:执行效率高,性能高,没有任何的锁

缺点:某些情况下,可能会造成内存的浪费

public class MyStaticHungrySingleton {
    private static final MyStaticHungrySingleton myStaticHungrySingleton;
    static{
        myStaticHungrySingleton = new MyStaticHungrySingleton();
    }
    private MyStaticHungrySingleton(){}
    public MyStaticHungrySingleton getInstance(){
        return myStaticHungrySingleton;
    }
}<br><br>public class MyHungrySingleton {<br>    private static final MyHungrySingleton myHungrySingleton = new MyHungrySingleton();<br><br>    private MyHungrySingleton(){}<br><br>    private MyHungrySingleton getInstance(){<br>        return myHungrySingleton;<br>    }<br>}

懒汉式单例

优点:节省内存

缺点:性能下降

public class LazySimpleSingletion {
    private static LazySimpleSingletion instance;
    private LazySimpleSingletion(){}
    public synchronized static LazySimpleSingletion getInstance(){
        if(instance == null){
            instance = new LazySimpleSingletion();
        }
        return instance;
    }
}
//性能下降
public class LazyDoubleCheckSingletion {
    private volatile static LazyDoubleCheckSingletion instance;
    private LazyDoubleCheckSingletion(){}
    public static LazyDoubleCheckSingletion getInstance(){
        //检查是否要阻塞
        if(instance==null){
            synchronized (LazyDoubleCheckSingletion.class){
                //检查是否要创建实例
                if(instance==null){
                    instance = new LazyDoubleCheckSingletion();
                }
            }
        }
        return instance;
    }
}
//指令重排序
  
目录
相关文章
|
6月前
|
设计模式 算法 Java
C++设计模式
C++设计模式
39 0
|
6月前
|
设计模式 缓存 算法
设计模式
设计模式
38 0
|
6月前
|
设计模式 前端开发 C++
什么是设计模式?
什么是设计模式?
67 0
|
设计模式 算法 程序员
【3W2H设计模式】什么是设计模式
【3W2H设计模式】什么是设计模式
264 0
|
设计模式
设计模式——里氏替换
设计模式——里氏替换
|
设计模式
设计模式总结
设计模式总结
77 0
|
设计模式 消息中间件 Java
一起来学设计模式之认识设计模式
前言 目前正在出一个设计模式专题系列教程, 篇幅会较多, 喜欢的话,给个关注❤️ ~ 本节给大家讲一下设计模式基本概念,它的基本原则以及有哪些设计模式~ 本专题的所有案例代码主要以Java语言为主, 好了, 废话不多说直接开整吧~ 设计模式初识 设计模式是一种经过验证的、被广泛应用的解决特定问题的软件设计方案,它提供了一种在软件设计中反复使用的解决方案。设计模式通常描述了一个问题的情境、解决方案和解决方案的优点和缺点。设计模式不是一种具体的编程语言特性或库,而是一种通用的设计思想和方法。
|
设计模式 Java
|
设计模式 算法 安全
11种常用的设计模式
有这么一个很形象的比喻,把写代码比作是建房子,代码比作是砖瓦、一个完整的系统就好比是一栋高楼大厦、程序员无疑就好比是建(ban)筑(zhuan)工,这些很表面的东西我们都可以很形象深刻的理解,其实要设计和开发一个系统远远不只这些东西,深挖表象之下隐藏着的细节往往才是灵魂所在,诸如:算法和数据结构、框架、设计模式等,设计模式是一个虚幻的抽象的概念,好比建造房子时的设计理念方案一样,一个软件系统扩展性、可维护性以及稳定健壮性如何,很大程度上取决于设计模式。
124 0
11种常用的设计模式
|
设计模式 Arthas Java
设计模式(四)
设计模式
200 0