设计模式笔记

设计模式目录

  1. 设计模式导读 √
  2. 面向对象 √
  3. 设计原则 √
  4. 规范与重构 √
  5. 范式-创建型
    – 建造者builder模式√
  6. 范式-结构性 √
  7. 范式-行为型
  8. 范式-总结
  9. 实战-开源
  10. 实战-项目
  11. 实战-总结

/* ------------------八大设计原则 start------------------ */

  1. 单一原则
  2. 开闭原则
  3. 子类替换父类(里氏替换原则)
  4. 隔离原则
  5. 简单原则(KISS: keep it SimpleShortStupidStraightforward)
  6. 不重复原则(Dont Repeat yourself)
  7. 高内聚松耦合原则
  8. 依赖倒置原则

判断类是否职责单一

  1. 类中属性过多,代码行过多,影响阅读和维护
  2. 过多依赖其他类
  3. 私有方法过多
  4. 很难取一个具体的名字
  5. 类中大量方法集中操作几个属性,考虑将这几个属性提取出来

开闭原则
在已有的代码基础上扩展代码(新增模块/类/方法等),对已有的代码关闭修改

通过组合、接口、委托三个技术手段,我们完全可以替换掉继承

组合和接口替代is-a关系
接口实现多态特性
代码复用通过组合和委托实现

/* ------------------八大设计原则 end------------------ */

设计原则实战: 积分系统

  1. 攒积分方式
    • 下单
    • 签到
    • 评论
    • 分享
    • 广告
    • 浏览
  2. 消费积分
    • 优惠券
    • 抽奖
    • 试用
    • 换购
  3. 积分查询

架构设计:
设计一: 系统相对复杂,但是耦合度是最松的
积分系统只负责增删改查;
营销系统向积分系统发送增删改查;
设计二: 分散 各改个的
订单系统/签到系统等各自向积分系统发送增删改成
设计三: 耦合度高
订单系统/签单系统等向积分系统发送单号,
积分系统自己再去查询订单进行增删改查

/* ------------------设计模型 start------------------ */
使用建造者builder模式:

  1. 在构造参数很多的时候,可以使代码"一气呵成"简洁紧凑
  2. 在最后调用builder()方法的时候还能校验参数们之间搭配是否合理

/* ------------------设计模型 end------------------ */

介绍一个东西:
必须介绍功能,
罗列优点,将将及格
进一步指出缺点, 及格到优秀.

间隙锁
1.1 如果查询没有命中索引,则退化为表锁;
1.2 如果等值查询唯一索引且命中唯一一条记录,则退化为行锁;
1.3 如果等值查询唯一索引但没有命中记录,则退化为临近节点的间隙锁;
1.4

InnoDB
行级锁-共享锁(S锁) - 不会阻塞对该行的读请求,但是会阻塞对该行的写请求
行级锁-排他锁(X锁) -

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值