找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 271|回复: 0

说说你熟悉的设计模式

[复制链接]

378

主题

55

回帖

2063

积分

管理员

积分
2063
发表于 2020-8-21 15:57:08 | 显示全部楼层 |阅读模式
我比较熟悉常用的设计模式
例如:单例模式、工厂模式、代理模式、模板方法模式以及策略模式


单例模式
懒汉:
     在第一次调用时初始化单例对象,可能会有线程安全问题。
饿汉:
     在类加载的时候初始化单例对象。


线程安全的延迟单例模式有几种实现方式:
1、 使用Synchronized同步方法或者同步代码块 实现

2、 双重检查+锁方式实现
class Single {


        private Single instance;
        private Single(){}


        public static Single getInstance(){
                if(instance == null){
                        synchronized(Single.class){        
                                if(instance == null){
                                        instance = new Single();
                                }
                        }
                }


                return instance;
        }
}




class Sigle{
        private Single(){}
        static class SingleHolder{
                public static Single instance = new Single();
        }


        public static Single getInstance(){
                SingleHolder.instance;
        }
}

单例模式的应用场景,像一些需要初始化的配置类,线程池
工厂模式
代理模式
模板方法模式
策略模式




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Comsenz Inc.

GMT+8, 2024-12-19 22:57 , Processed in 0.045669 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表