自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 资源 (2)
  • 收藏
  • 关注

原创 备忘录模式 -- 有后悔药可以吃

备忘录模式 这个模式的用途理解很简单. 但是实现却需要分三个角色 状态类 , 和业务高度耦合. 存储业务中的状态, 备忘录类, 包装一时刻状态的类, 可以加上一些附加信息 备忘录存储类, 存储备忘录信息, 以便可以恢复状态, 内部实现可以存数据库, 内存等等地方 当前状态类 这个是当前状态的存储类, 类中含有状态的修改和获取的方法. 还得需要一个 生成备忘录的方法 和一个从备忘录中回复的方法 public class Originator { //具体状态 private Stri

2021-09-14 19:59:35 309

原创 命令模式和组合模式 -- 经常一起使用的模式

介绍 组合模式 是一种用来方便操作整体和局部对象的模式, 比如: 你的老板是周扒皮 周扒皮对部门中小王 进行 降薪 操作, 操作对象是小王, 周扒皮也可以对整个不能进行降薪操作, 操作对象是部门 部门就是多个小王的组合, 对于老板来说他不关心部门和小王的区别, 他只要这个操作对象支持降薪就可以了, 而组合模式就是屏蔽这个整体和局部区别使得调用者 方便操作的设计模式 命令模式分为发令者和执行者两个部分, 是一种把复杂操作封装到命令对象中有执行者执行的设计模式, 发令者可以不用关系执行的细节 比如

2021-09-13 16:27:19 1081

原创 桥接模式 -- 隔离多个变化点

桥接模式, 如果某一段逻辑需要分先后两步来实现, 并且第一步和第二步都各自有很多的实现方式, 如果直接使用ifelse来实现的话,就可能需要N x M 个分支, 如果使用继承的方式, 子类的数量也会爆炸, 此时使用桥接模式是最合适的。 桥接模式需要先把两步操作抽象出来成两个接口, 再把这个两个接口作为调用类的构造参数传入, 这样调用类就不用关心两步操作的具体实现了。 应用场景 支付场景假设, 支付分两步, 第一步选择支付宝或者微信支付方式, 第二步选择密码或者指纹验证方式, 然后才能支付成功。 支付方式

2021-09-08 23:15:36 345

原创 建造者模式 -- 复杂对对象的建造过程

对象的初始化很复杂,并不是指构造方法复杂, 是指对象达到可以使用的状态,中间需要执行很复杂的逻辑。比如: 要连接数据库,要打开文件句柄,要加载配置文件, 要请求rpc接口等。 如果把这些逻辑都一股脑的写在构造方法, 或者Init方法中, 逻辑就很多很杂, 建造者模式就派上用场了。 优缺点 优点: 分离复杂的创建逻辑 便于精细控制创建过程 创建过程中的变化也易于扩展, 并且对于调用这可以屏蔽这部分的变化 缺点: 如果有很多复杂类, 会导致过多的建造者类 Builder 建造者模式一般需要一个 Buil

2021-09-07 22:39:55 377

原创 工厂模式细分

工厂模式 ,是属于创建型设计模式。 通常是设计一个创建方法的接口, 然后不同的工厂实现这个方法来生成不同的对象。 调用者只要根据需求选择不同的子类来创建对象就可以了, 不用在写众多的if - else 判断逻辑了。 工厂模式细分 简单工厂模式 生产的产品对象有很多种子类 工厂类只有一个, 根据方法的入参来声场不同的对象 使用这种模式 需要你抽象提取出来不同的产品子类 工厂方法模式 生产的产品对象有很多种子类 工厂也有一个接口, 不同的产品工厂都实现这个工厂接口 , 这样不同的子工厂就可以生成不同的

2021-09-06 23:35:05 290

原创 基于AOP的Controller接口脱敏方式

目录前言常见方案方案一方案二方案三实现方式两个注解类切面类脱敏序列化类接口类接口调用踩过的坑 前言 我们的后台系统收到了数据脱敏的需求, 要求在一些关联页面的手机号, 收货地址等重要信息需要进行脱敏显示. 所以才有了这个脱敏方案 常见方案 方案一 在关键的DTO 和VO上增加注解, 然后这些对象通过接口返回调用者的时候, 会屏蔽掉注释字段的值. 优点: 只要增加了注释, 所有的返回这个对象的接口都会屏蔽, 不用每个接口单独写代码 缺点: 无法针对特定的接口精细化控制 返回的前端的DTO对象是其

2021-09-06 19:26:29 1873 3

springmvc mybatis maven 项目源码

springmvc mybatis maven 项目源码

2015-11-23

netty.zip源码

netty源码, 包含git提交信息, 不用从github下载了。 需要度源码的同学可以下载下来看看,

2020-05-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除