美文网首页
设计模式

设计模式

作者: 那就这样吧丶xx | 来源:发表于2022-06-30 17:11 被阅读0次

    设计模式分为三大类:

    创建型模式:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式(5种)
    结构型模式:适配器模式、装饰者模式、代理模式、外观模式、桥接模式、组合模式、享元模式。(7种)
    行为型模式:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。(11种)

    面试常问:单例模式、策略模式、装饰者模式、代理模式。
    Decorator(装饰模式):动态地给一个对象添加一些额外的职责。就扩展功能而言, 它比生成子类方式更为灵活。
    Singleton(单例模式):保证一个类仅有一个实例,并提供一个访问它的全局访问点。
    Strategy(策略模式):定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。本模式使得算法的变化可独立于使用它的客户。
    Proxy(代理模式):为其他对象提供一个代理以控制对这个对象的访问。

    单例模式
    饿汉式
    public class Singleton {
        //在类内部实例化一个实例
        private static Singleton instance = new Singleton();
        //私有的构造函数,外部无法访问
        private Singleton() {
        }
        //对外提供获取实例的静态方法
        public static Singleton getInstance() {
            return instance;
        }
    }
    
    懒汉式
    线程安全版本
    public class Singleton {  
        private static Singleton instance;  
        private Singleton (){}  
        public static synchronized Singleton getInstance() {  
        if (instance == null) {  
            instance = new Singleton();  
        }  
        return instance;  
        }  
    }  
    
    双重校验锁
    public class VolatileSingleton {
        private static volatile VolatileSingleton singleton;
    
        private VolatileSingleton() {
        }
    
        public static VolatileSingleton getSingleton() {
            if (singleton == null) {
                synchronized (VolatileSingleton.class) {
                    if (singleton == null) {
                        singleton = new VolatileSingleton();
                    }
                }
            }
            return singleton;
        }
    }
    

    相关文章

      网友评论

          本文标题:设计模式

          本文链接:https://www.haomeiwen.com/subject/dtifbrtx.html