使用辅助方法设计基于静态或基于接口的库?

时间:2010-10-22 18:48:33

标签: oop

我正在设计一个公开的方法的.Net库,所有这些方法都只能被标记为辅助方法。接受PersonID,RoleID等返回计算的工资,全年的工资,奖金等。

  • 设计一个包含GetSalary(),GetBonus(),GetHistoricSalary()等方法的静态类是否可以。
  • 或者我应该有一个接口ISalaryProcessor并在那里有这些方法吗?

使用选项2,实现类只有行为而不是数据,在尝试签订合同时,我创建了一个不需要的纯粹制作?

1 个答案:

答案 0 :(得分:2)

如果您提供一个接口(或多个接口,按照ISP),您的客户可以为您的库的部分提供自己的实现,并在需要时轻松切换它(例如用于测试目的)。

它还允许客户端编程到接口并在其程序中跟随LSP,使实现与其应用程序分离。

为了这种灵活性,我会使用接口。

使用静态库,无法将其切换出来并引入直接依赖关系(针对LSP)。