![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 72
weixin_43890360
You ready to make the world a better place?
展开
-
设计模式-引言
设计模式是一种规约,指导我们写一些 易理解、好上手 的东西。减少伤害。设计评价指标:可读、复用、扩展、测试、维护。原创 2023-05-13 15:13:58 · 69 阅读 · 1 评论 -
设计模式-类创建
程序 以 类 为 单位, 组织开发。类,本身就是一种抽象,抽象了 真实存在 的 对象。这就像 蛋糕模具,模具总是完整的,但做出来的蛋糕可能是有残角的。我们定义类,就是定义了一个完整的模具,实例化的对象可能属性值为空,或是 方法从未被使用过。类 的 特性:1. 封装-访问控制:每个事物有自己的边界、内在关联2. 抽象 -接口、抽象类、函数、宽泛命名、添加注释:抽象简化问题,只关注功能不关心实现细节3. 继承+多态-重写、实现,超出四层用 -> 组合,扁平化接口 定义了 功能。飞翔 接口。原创 2023-05-14 07:15:00 · 66 阅读 · 0 评论 -
设计模式-类扩展-代理
日常 POJO 只增不改没问题的。字段命名不规范也不要改。方法只有一处调用,或者是你开发的历史版本,改掉问题不大,多测测。但其他情况,不要改老代码,考虑在代码上做扩展,原因是:1. 看不惯想整合?改错了就是事故2. 改东西要花时间的,开发要时间,测试要时间,验收也要时间3. 底层框架里的类你改不了。原创 2023-05-14 17:53:29 · 59 阅读 · 0 评论 -
设计模式-类扩展-非代理
AOP获取单例切面JavaIO 实现 :BufferedInputStream f = new BufferedInputStream(new FileInputStream(new File(“c:/test.txt”)));切面匹配拦截器 桥接模式代理模式:扩展目标方法,通过重写/实现装饰器模式:实现类里 定义接口属性,实例化时传入另一个实现类,可以在一个实现类里面调用另一个实现类适配器模式:适配器 重在 语义——转换(外部传参,内部结构)。其实现方式可以是 接口默认方法,可以是原创 2023-05-14 21:52:44 · 54 阅读 · 0 评论 -
设计模式-类交互-发布订阅
这种事情,NIO,消息队列 最熟了。1. 订阅者 订阅事件2. 发布者 发布事件3. 订阅者接收事件。原创 2023-05-20 18:45:22 · 119 阅读 · 0 评论 -
设计模式-类交互-非订阅
模板方法表达,1. 一个问题有不同方式,每种方式都需要拆解成多步骤(方法)解决,可以把解决步骤定下来,形成模板。如 DispatcherServlet#doDispatch2. 枚举一个功能的所有操作方式,封装在模板里。典型实现:RedisTemplate,子类可以重写模板类 StringRedisTemplate。注意模板方法的划分粒度,合适的划分可以解耦,太详细就没必要,不如写一个 pipeline。CRUD:[组装数据,rest请求,数据转换],[入库前校验,入库] 是一个模板方法的两个步骤。原创 2023-05-21 06:45:00 · 122 阅读 · 1 评论 -
设计模式-特例
数据持久化方式:每日 23:30:00 定时保存到数据库,删除缓存。代码设计:GetMapping 获取文章时,切面自增计数。高并发 自增 - 文章浏览量设计。计数维度:IP + 文章ID。原创 2023-05-21 13:06:45 · 76 阅读 · 1 评论