背景

设计模式在知识体系中的位置,

分类 细分 价值
基础 计算机基础,编译原理 底层价值
编程基础 语言基础,业务逻辑 程序员基本基本功能
数据结构&算法 程序更高效 高级研发的能力基础
设计模式 设计模式本身,基于设计模式的框架 可扩展,可维护
框架 缓存,消息中间件,并发, 应对特定场景的轮子

为什么要学习设计模式

为什么要学习设计模式 - 图1

同学的一些共鸣

反馈一 :代码的维护方式

一个投资后的奖励活动,原来打算用分支条件判断写,后面持续发布了1700多个活动,如果按照之前的思路,那么代码会相当不好维护。

设计之后:
参考yii框架的实现方法:做了以下的解耦,购买后的奖励分为4块:
1 配置规则是否具有奖励资格
2 清算出奖励多少,讲给谁,有固定金额,阶梯算法,比例值,vip等级等
3 创建奖励执行类,比如红包,现金,抽奖券,积分等,然后执行奖励
4 发送通知,站内信,短信,微信,邮件等方式

反馈二 :游戏类场景的经典选型

ui,场景,管理类的基本是单例模式;
角色的基本是工程模式,加对象池;
处理角色的各个状态要用到状态模式,设置切换的状态,然后可以执行相应状态的操作;
复杂的游戏场景,把公用的部分用享元模式

反馈三:影响日常代码的书写潜意识

1 代理模式进行共性化的处理,讲非业务和业务的部分解耦
2 算法逻辑复杂的,抽象化之后使用策略模式
3 职责链,设计各种规则,用合适的前置条件,持续处理直到符合结果

反馈四:提升工作效率

从原来的代码段到组件开发,组合式开发