背景
做为一名使用高级语言的程序员,面向对象的设计一直都是体现程序员能力的重要标准之一,所以在我工作两年后也就是2008年我也开始了对于面向对象设计的学习,主要是拿GOF设计模式来练手,尽管实际项目中没有真正的使用过。常见的23种设计模式,我从2008一至到2009年将近一年的时间我基本上将这些模式都写了一篇Demo,但可能是当时的认识问题有少部分的模式我并没有写下笔记,比如这篇重点分享的状态模式。
案例
由于我工作的项目大多以后台业务为主,所以简单的审核流程非常常见。一说到审核流程,我们可以说市面上有好多工作流的产品可以选择,这当然是好的,但有些项目刚开始规模比较小,需求也比较简单,从技术成本以及效率上来讲一般都不会考虑在项目刚开始的时候就引用工作流引擎,基本上都是通过常规的数据状态扭转即可达到目的,说的直白点就是根据不同的数据状态来做不同的操作。拿我最近的一个产品申请功能来讲,它具备一个典型的状态扭转流程:
保存
提交
审核
拒绝
预发布
上架
下架
删除
操作人员在实现产品申请的状态变更时,一般写程序步骤是这样的:
获取申请的当前状态
判定当前的申请状态是否允许做审核操作,一般会出现类似如下的代码:
延伸阅读
- ssh框架 2016-09-30
- 阿里移动安全 [无线安全]玩转无线电——不安全的蓝牙锁 2017-07-26
- 消息队列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 论文笔记【图片目标分割】 2017-07-26
- 词向量-LRWE模型-更好地识别反义词同义词 2017-07-26
- 从栈不平衡问题 理解 calling convention 2017-07-26
- php imagemagick 处理 图片剪切、压缩、合并、插入文本、背景色透明 2017-07-26
- Swift实现JSON转Model - HandyJSON使用讲解 2017-07-26
- 阿里移动安全 Android端恶意锁屏勒索应用分析 2017-07-26
- 集合结合数据结构来看看(二) 2017-07-26
学习是年轻人改变自己的最好方式