第一次画的UML类图是很潦草的,但凡事都从第一次开始,然后不断迭代。
刚开始,从客户那里得到如下信息:
1.职员分为钟点工,普通职员,销售(可以拿提成)
2.职员可以选择薪水支付方式,支票发放,现金发放,和银行卡打款。
3.公司有一个协会(工会?),加入协会的职员每个月收取一定的会费,从工资中扣除。
--------------------------------------------------------------------------------
然后通过客户给出的信息,模拟使用例子:
1.增加职员
2.删除职员
3.支付薪水
等等。。。
--------------------------------------------------------------------------------
关于增加职员的操作,书中给出这样的UML类图:
一般去实现增加职员这个操作,通常会联想到数据库,直接连接数据库然后加一条数据不就完事了吗?
但是真正需要的是得到一个新职员的对象模型,一个数据类型。
其中有一些操作只有钟点工才能做的,比如时间卡的时间累积。
比如增加销售凭条就是销售才有的。
这个是需要注意的一方面。
--------------------------------------------------------------------------------
薪水操作,书中的UML类图是这样的:
像TimeCard, SalesRecelpt这样的功能,都用组合来实现了。往往自己开发的时候图方便,肯定都直接写到类里面去了。
归属Affiliation,的部分用了空对象模式NoAffiliation类。
这样的结构有种以职员为中心的感觉。
对于钟点工的薪水支付,书中图片如下:
另外一种也差不多