1.背景 在企业应用中单据编号的自定义是一个很常见的需求,如工号、业务单据编码等,能不能抽象一个通用的框架呢? 2.思路 这里的难点在于实现"解释器",比如将"前缀"是日期、年月、固定字符、部门代码等。而且“解释器”的“规则”允许动态增加。实施人员和用户可以自由改变单号的生成规则。 还要 ...
背景 在企业应用中单据编号的自定义是一个很常见的需求,能不能抽象一个通用的框架呢 之前写个一篇自定义密码强度的博文,感觉他们两个思路应该很相似。就让我们试试吧。 思路 这里的难点在于实现 解释器 ,比如将 前缀 lt 日期:yyyy MM dd gt 解释为 工号生成器 ,而且 解释器 的 规则 允许动态增加。 实现 代码下载 类图 核心代码 CodeRuleGenerator.cs CodeRu ...
2013-05-12 09:38 19 2640 推荐指数:
1.背景 在企业应用中单据编号的自定义是一个很常见的需求,如工号、业务单据编码等,能不能抽象一个通用的框架呢? 2.思路 这里的难点在于实现"解释器",比如将"前缀"是日期、年月、固定字符、部门代码等。而且“解释器”的“规则”允许动态增加。实施人员和用户可以自由改变单号的生成规则。 还要 ...
背景 我在上篇文章“.NET:可扩展的单据编号生成器 + 简单的解释器”中介绍了一个简单的单据编号框架。有朋友留言问如何实现“顺序号,且不能重复”,本篇文章就针对这个问题用上篇介绍的框架进行实现。 思路 顺序号 = 上次顺序号 + 步长 根据上面的公式,问题可以化解为:如何获取上次顺序号 ...
背景 我在上篇文章“.NET:可扩展的单据编号生成器 之 顺序号(防止重复)”中介绍了如何使用“种子表”和“悲观锁”解决顺序号的问题。昨天找朋友讨论,说这种速度不够高,今天就稍微改进一下,引入一个内存缓冲区,提高生成的速度。 思路 引入内存缓冲区后,顺序号的生产流程变为:在内存中维护一个 ...
方法解释执行时需要解释器与解释器生成器的支持。解释器与解释器生成器的继承体系如下: 下面详细介绍解释器与解释器生成器。 1、解释器 解释器是一堆本地代码例程构造的,这些例程会在虚拟机启动的时候写入到StubQueue中,以后解释执行时就只需要进入指定例程即可。 解释器的继承体系 ...
背景 昨天发布了一个编号生成器(http://www.cnblogs.com/happyframework/p/3177128.html),有朋友留言问支不支持某些规则,因为是可以扩展的,所以很容易支持各种规则,今天我就写了另外两种规则,也是对留言的朋友做一个回复。 留言A 留言 ...
背景 之前写过三篇文章介绍如何实现这种编号生成器: http://www.cnblogs.com/happyframework/archive/2013/05/12/3073688.html。 http://www.cnblogs.com/happyframework/archive ...
楔子 下面我们来聊一聊Python中的生成器,它是我们理解后面协程的基础,生成器的话,估计大部分人在写程序的时候都想不到用。但是一旦用好了,确实能给程序带来性能上的提升,那么我们就来看一看吧。 生成器 基本用法 我们知道,一个函数如果它的内部出现了yield关键字,那么它就不再是普通的函数 ...
编号生成器 前缀: 后缀: 位数: 连续数字 随机字符 范围: ~ 过滤字符: 多个使用,号分割 0123456789 abcdefghijklmnopqrstuvwxyz ...