代码之家  ›  专栏  ›  技术社区  ›  anivas

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

oop
  •  0
  • anivas  · 技术社区  · 14 年前

    我正在设计一个.NET库,它公开方法,所有这些方法只能标记为助手方法。接受员工ID、角色ID等返回计算工资、全年工资、奖金等。

    • 是否可以设计一个静态类,该类有getSalary()、getBonus()、getHistoricsAlary()等方法。
    • 或者我应该有一个接口isalaryProcessor并在其中包含这些方法吗?

    使用选项2,实现类只具有行为而不是数据,在尝试引入一个契约时,我是否创建了一个不需要的纯虚构?

    1 回复  |  直到 14 年前
        1
  •  2
  •   Oded    14 年前

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

    它还允许客户机编程到一个接口并跟踪 LSP 在他们的程序中,使实现与他们的应用程序分离。

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

    对于静态库,没有办法将其切换出去,并且引入了直接依赖关系(针对LSP)。