我正在设计一个.NET库,它公开方法,所有这些方法只能标记为助手方法。接受员工ID、角色ID等返回计算工资、全年工资、奖金等。
使用选项2,实现类只具有行为而不是数据,在尝试引入一个契约时,我是否创建了一个不需要的纯虚构?
如果您提供一个接口(或多个接口,根据 ISP ,您的客户机可以为您的库的某些部分提供自己的实现,并在需要时(例如为了测试目的)轻松地切换它。
它还允许客户机编程到一个接口并跟踪 LSP 在他们的程序中,使实现与他们的应用程序分离。
为了这种灵活性,我将使用接口。
对于静态库,没有办法将其切换出去,并且引入了直接依赖关系(针对LSP)。