设计模式
文章平均质量分 83
cb李先生
这个作者很懒,什么都没留下…
展开
-
线程池简单实现
线程池简单实现UML核心代码任务队列满时执行的拒绝策略核心线程池线程池中使用的任务模型任务队列其他一些接口的定义全部代码 UML 核心代码 任务队列满时执行的拒绝策略 枚举单例 + 策略(DenyPolicyStrategy.java) package com.example.executor.service.impl; import com.example.executor.exception.RunnableDenyException; /** * 任务数量达到上限时, 线程池处理的三种策略原创 2020-06-25 16:06:00 · 117 阅读 · 0 评论 -
设计模式(四) 模板模式
借用设计模式(二)中的案例 问题分析 拿AliSmsAdapter举例 public class AliSmsAdapter implements SmsService { /** * 发送验证码类的短信方法 * 传递一些需要的参数 * * @param paramMap */ @Override public Map<String, String> sendCodeSMS(Map<String, String&原创 2020-06-22 00:28:52 · 92 阅读 · 0 评论 -
设计模式(三) 策略模式
借用设计模式(二)中的案例 问题分析 在Demo中部分代码 /** * 重置密码方法 */ public void resetPassword() { String smsType = "huawei"; sendCodeSMS(smsType, new HashMap<>()); } public Map sendCodeSMS(String smsType, Map<String, String&原创 2020-06-22 00:06:33 · 101 阅读 · 0 评论 -
设计模式(二) 适配器模式
业务场景 制作一个发送短信的接口, 注册, 重置密码方法都要使用 系统对接的短信平台有好多,阿里,腾讯,华为 每个平台都有自己的sdk可以使用 短信大致可分为几类如: 验证码短信,通知类短信 UML类图 调用者只依赖SmsService接口,当有平台的sdk有变化或者增加短信平台时,可避免大量修改调用者代码 代码 各个适配器中的代码看起来可能一样,但是不同平台都有自己处理参数和调用的方法,实际实现还是有区别的 Demo.java public class Demo { SmsServ原创 2020-06-21 23:41:40 · 197 阅读 · 0 评论 -
设计模式(一) 单例
单例饿汉式懒汉式加锁双重校验为什么要判断两次instance是否为null为什么instance要添加volatile关键字静态内部类的方式枚举 饿汉式 优点: 不用考虑多线程问题,利用clinit机制实现单例对象 缺点:类加载时,即使用不到当前对象也要创建对象,占用内存 /** * 饿汉式 * 私有化静态空参构造器 * 初始化静态变量 * 添加getInstance方法 */ public class SingleTon { private static SingleTon inst原创 2020-06-19 22:20:49 · 83 阅读 · 0 评论