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 ...