2010-10-22 19 views
0

我正在设计一个.Net库,它揭示了所有这些方法都可以标记为辅助方法的方法。发生在是PersonID,角色ID等收益计算工资,薪金全年,奖金等使用基于静态或接口的辅助方法设计库?

  • 它是确定设计出具有类似的getSalary(方法)只是一个静态类,GetBonus(),GetHistoricSalary()。
  • 或者我应该有一个接口ISalaryProcessor,并在那里有这些方法?

对于选项2,实现类只是具有行为而不是数据,在试图引入合同时,我是否会创建一个不需要的纯制造?

回答

2

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

它还允许客户端程序提供给接口,并按照LSP在他们的工作,使他们的应用程序分离的实现。

对于这样的灵活性,我会去的接口。

的静态库,没有办法切换出来,并引入了直接依赖(对LSP)。

+0

同意。但是我的SalaryProcessor实现ISalaryProcessor只会有行为,对于一个类只有行为可以吗? – anivas 2010-10-22 19:01:52

+0

@anivas - 如果它只是一个帮手类,那为什么不呢?要实用,不要教条。 – Oded 2010-10-22 19:02:38