首页 理论教育 雇员概念的边界设计决策

雇员概念的边界设计决策

更新时间:2025-01-19 工作计划 版权反馈
【摘要】:但我们通常并不能把所有东西都认为是雇员属性,这会导致Employee这个类别的边界无限膨胀,违背正交原则。因此需要人为进行取舍,给雇员类一个有限而明确的边界,在这边界内的才是雇员类,边界外的需要用其他概念来表达,这将帮助我们的设计进行下去。也就是说,小时工资、按月工资和按销售额计算工资这三者在类的边界内,而付款方法,参不参与协会等其他属性与雇员类没有关系。

类别自身先天具有与周围其他类别相连续的特质。比如说,付款方法、加不加入协会、工作时间等所有这些概念都和雇员(Employee)相关。但我们通常并不能把所有东西都认为是雇员(Employee)属性,这会导致Employee这个类别的边界无限膨胀,违背正交原则。

以雇员(Employee)类而论,如果任其膨胀,他可以膨胀为:加入协会的雇员,没有加入协会的雇员,使用邮寄的雇员,使用支票方式的雇员,使用银行账户的雇员,领取月薪的雇员,领取周薪的雇员,有带薪假期的雇员,有病假的雇员等。

照这个思路走下去,程序中所有的逻辑都可能和雇员类(Employee)相关,这会增加不必要的复杂度。因此需要人为进行取舍,给雇员(Employee)类一个有限而明确的边界,在这边界内的才是雇员类,边界外的需要用其他概念来表达,这将帮助我们的设计进行下去。当然这个边界可能有所调整(迭代),并同时存在多种解法,但如果我们不选择给出一个边界,概念就会保持混沌状态,工作会无法推进下去。

在这里,我们首先认为(Employee)类表征的是员工薪资类别的集合。

也就是说,小时工资、按月工资和按销售额计算工资这三者在(Employee)类的边界内,而付款方法,参不参与协会等其他属性与雇员(Employee)类没有关系。

接下来我们来简单比较一下这种分类与Robert C·Martin版本的异同。(www.xing528.com)

在原来的版本中雇员类相对比较泛化,付款方法、是否加入协会都成为雇员类(Employee)的一种属性,UML图如图9-2所示。

978-7-111-42626-4-Chapter09-2.jpg

图9-2 Robert C·Martin版本中的静态结构图

单以这一点而论,并无优劣,只是选择不同,我们继续分析。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈