设计模式

121 阅读2分钟

责任链模式

解决场景 一件事情要好多人处理才OK 比如 离职的时候要好几个领导审批才OK

策略模式

适合场景 比如商城 选择支付的方式的时候 有微信 支付宝 2个方式 我们就可以用策略模式 来代替if else 就是同一个功能 有好几种解决方案 每种方案可以写成一个策略 一个策略相当于方案1 缺点 方案太多的时候 策略类数量庞大

命令模式

运用场景 生活中的点菜-服务员-上菜 完成点菜的功能 背后有多少个厨师在工作 有点类似于微服务 多个服务 共同为了一件事情服务

策略模式和命令模式的区别

策略模式是通过不同的算法做同一件事情:例如排序 而命令模式则是通过不同的命令做不同的事情,常含有(关联)接收者。

状态模式

就是某个对象中的状态发生改变的时候执行不一样的逻辑 和策略模式一样 都可以解决if else 过多的问题点

观察者模式

就是消息通知机制 某个事件发生了 然后通知 相关的人

模板设计模式

例如,去银行办理业务一般要经过以下4个流程:取号、排队、办理具体业务、对银行工作人员进行评分等, 其中取号、排队和对银行工作人员进行评分的业务对每个客户是一样的,可以在父类中实现, 但是办理具体业务却因人而异,它可能是存款、取款或者转账等,可以延迟到子类中实现。

这样的例子在生活中还有很多,例如,一个人每天会起床、吃饭、做事、睡觉等, 其中“做事”的内容每天可能不同。我们把这些规定了流程或格式的实例定义成模板, 允许使用者根据自己的需求去更新它,例如,简历模板、论文模板、Word 中模板文件等。

缺点

类多是设计模式的通病

优点

重构时,模板方法模式是一个经常使用到的模式, 把相同的代码抽取到父类中, 通过钩子函数约束其行为