使用界面时的最佳做法

crv*_*crv 2 c# architecture interface-design interface

很多时候,在设计接口时,我会一直遇到相同的情况.这种情况是使用接口的某些实现需要接口中的特定参数而其他实现不需要.

  • 设计界面时的最佳做法是什么?
  • 是否可以使用某些实现接口但不使用所有参数的实现?

或者在这些情况下,我应该只参考一个参数列表(某些结构)并在每个实现中相应地处理该列表?

jga*_*fin 9

不,不行.它打破了Liskovs Substituion Principle.

听起来我的界面试图做太多.使用接口继承或将接口拆分为多个接口.请注意,拥有许多小型接口比使用大型接口更好.类仍然可以实现所有这些.

接口,如类,应遵循SRP(单一责任原则).因为它们强制设计应用程序的其余部分,因此接口这样做非常重要.

我也倾向于尽量避免从接口添加属性.