本帖最后由 ysdolls 于 2014-8-13 11:34 编辑
大家忽略标题哈,为了更多的人参与而已。
刚刚听了银行系统第一讲 ,知道了需求 ,我感觉张老师做的并不太好。所以我在看之前先设计了一下。新手逻辑有点乱,大家帮忙给分析一下优劣。欢迎交流~随笔 ,大家能看懂的,都是我知音哈。
总共建立3个类分别为:
1.服务窗口类 3种普通,vip,快速,继承Runnable
run调用 号码管理器的remove方法 服务端 remove 客户后 查找并删除3个链表中相同的id
1.普通客户 run内部调用2类的普通remove方法 返回null sleep
2.vip类 run内部先调用2类的vipRemove方法,返回null,调用2类普通,返回null sleep
3.快速 类似vip~~~~ 快速Remove ~~~~ ~~~~~~~ 普通 ~~~~~
2.号码管理器类 3个remove方法 3个链表 3种链表add方法添加客户id到链表
1. vip 添加到 vip 和 普通
2.快速 添加到 快速 和 普通
3.普通只添加到普通
(1)普通 用户获取 这里可以应用removeFirst方法
(2)vip用户获取 这里可以应用removeFirst方法
(3)快速用户获取 这里可以应用removeFirst方法
三个链表remove后都要查找一次 其他两个链表有没有相同id用户 有则删除 这里耗费内存可以优化(如。。。我复习一下链表做什么快,做什么慢先。。。)
3.号码生成器类 i 号码成员 号码生成方法(i++) 传递i调用2类的链表生成方法
分三个方法分别为 1.普通。i++2.vip。i++ 3.快速。i++可以加入线程调节优先级控制客户比例。
加入同步 防止同时取号。
变量 Number 取得id后调用2类add方法添加进链表(不用用户调用不同add方法)
|
|