责任链模式
解决场景 一件事情要好多人处理才OK 比如 离职的时候要好几个领导审批才OK
策略模式
适合场景 比如商城 选择支付的方式的时候 有微信 支付宝 2个方式 我们就可以用策略模式 来代替if else 就是同一个功能 有好几种解决方案 每种方案可以写成一个策略 一个策略相当于方案1 缺点 方案太多的时候 策略类数量庞大
命令模式
运用场景 生活中的点菜-服务员-上菜 完成点菜的功能 背后有多少个厨师在工作 有点类似于微服务 多个服务 共同为了一件事情服务
策略模式和命令模式的区别
策略模式是通过不同的算法做同一件事情:例如排序 而命令模式则是通过不同的命令做不同的事情,常含有(关联)接收者。
状态模式
就是某个对象中的状态发生改变的时候执行不一样的逻辑 和策略模式一样 都可以解决if else 过多的问题点
观察者模式
就是消息通知机制 某个事件发生了 然后通知 相关的人
模板设计模式
例如,去银行办理业务一般要经过以下4个流程:取号、排队、办理具体业务、对银行工作人员进行评分等, 其中取号、排队和对银行工作人员进行评分的业务对每个客户是一样的,可以在父类中实现, 但是办理具体业务却因人而异,它可能是存款、取款或者转账等,可以延迟到子类中实现。
这样的例子在生活中还有很多,例如,一个人每天会起床、吃饭、做事、睡觉等, 其中“做事”的内容每天可能不同。我们把这些规定了流程或格式的实例定义成模板, 允许使用者根据自己的需求去更新它,例如,简历模板、论文模板、Word 中模板文件等。
缺点
类多是设计模式的通病
优点
重构时,模板方法模式是一个经常使用到的模式, 把相同的代码抽取到父类中, 通过钩子函数约束其行为