《模式——工程化实现及扩展》(设计模式C# 版)《访问者模式 Visitor》——“自我检验"

转自:《模式——工程化实现及扩展》(设计模式C# 版)
http://www.cnblogs.com/callwangxiang/

 


 

 

下面我们把本章正文部分的HR系统示例进一步复杂化:

1、 系统管理的人员类型包括三大类4小类:

a.       员工(Employee):包括普通员工(General Employee),经理(Manager

b.      临时员工(Temporary

c.       外聘专家(Expert

2、 管理的内容包括三大类8小类,而且预期还会不断增加

a.       薪金:包括底薪、司龄工资(与在公司工作年限相关)、不定期的岗位加薪和外聘专家的聘金

b.      保险和公积金:养老保险和住房公积金

c.       假期:年休假、岗位增休假

3、 现有功能需求

a.       薪金:

                                                               i.      司龄工资:每年增加50

                                                             ii.      不定期的岗位加薪:计划给普通员工和经理分别加薪15%10%

b.      保险和公积金:为了简化示例,养老保险和住房公积金分别按最后应发收入合计的5%15%扣除

c.       假期:

                                                               i.      年休假:所有员工(普通员工、经理)按照司龄从每年5天起,每满5年年度增加5天逐级递增

                                                             ii.      岗位增休假:计划在现有休假基础上,普通员工每年增加3天,经理每年增加5

请采用本章介绍的任意一种访问者模式实现方式(“经典方式”、“Dynamic方式”和“LINQ + 委托方式”),完成上述功能,并通过单元测试验证。

 

       要求:

1、 依赖关系尽可能简洁

2、 实现方式尽可能简洁、实用

3、 便于从“人员类型”和“管理内容”两方面扩展

 

posted @ 2011-05-26 10:40  蜡笔小王  阅读(1378)  评论(0编辑  收藏  举报