什么时候应该使用 interface/abstract class 什么时候不应该?
When should I use interface/abstract class and when should I not?
我们都知道接口和抽象 classes 是许多设计原则所必需的,并且被告知是编程的“最佳实践”,无论是出于维护还是扩展目的。
但我也听到有人说,“不要过度使用接口或抽象 classes”!
那么,我该如何“划清界限”呢?
我知道接口和抽象之间的区别class(有点)。
所以我对“什么时候用哪个?”不感兴趣,我对“什么时候用太多”感兴趣?
例如,the example given by r/PiggyChu620 from this post 显然“过度设计”了接口,正如下面 r/AlarmedSlide1 所说的那样。
因此,为了避免 r/PiggyChu620 犯的同样的错误,是否有任何关于“我什么时候应该使用 interface/abstract class 什么时候不应该使用”的“边界指南”?
非常感谢您的帮助!
其实很简单。
如果您可以从代码中删除接口(当它用作参数时,可以用特定的 class 替换它)并且您的代码仍然有效,则不需要它。
与所有工具一样,“我什么时候应该使用它”这个问题的答案是“当您 也需要 时”。如果你“仅仅因为”使用它,那么当你根本不使用它时,你可能会使你的程序更简单(因此更易于维护)。
接口、Base classes 和 OOP 很重要,因为您要用它来解决问题。如果您发现自己这样做却没有解决实际问题,我会认为它“过度使用”。
接口是 类 之间签署的合同,所有使用它的 类 都受接口规则的约束。
这种类型的设计更容易重用并增加维护。
假设您创建了一个车辆界面。所有交通工具都必须实现这个接口,包括自行车、摩托车、汽车等
这种设计风格造血,为你的程序创造出美观而有原则的架构
因此,如果您的 类 具有类似的行为,您可以使用接口或抽象 类。
可以参考这个link到compare abstract classes and interfaces
我们都知道接口和抽象 classes 是许多设计原则所必需的,并且被告知是编程的“最佳实践”,无论是出于维护还是扩展目的。
但我也听到有人说,“不要过度使用接口或抽象 classes”!
那么,我该如何“划清界限”呢?
我知道接口和抽象之间的区别class(有点)。
所以我对“什么时候用哪个?”不感兴趣,我对“什么时候用太多”感兴趣?
例如,the example given by r/PiggyChu620 from this post 显然“过度设计”了接口,正如下面 r/AlarmedSlide1 所说的那样。
因此,为了避免 r/PiggyChu620 犯的同样的错误,是否有任何关于“我什么时候应该使用 interface/abstract class 什么时候不应该使用”的“边界指南”?
非常感谢您的帮助!
其实很简单。
如果您可以从代码中删除接口(当它用作参数时,可以用特定的 class 替换它)并且您的代码仍然有效,则不需要它。
与所有工具一样,“我什么时候应该使用它”这个问题的答案是“当您 也需要 时”。如果你“仅仅因为”使用它,那么当你根本不使用它时,你可能会使你的程序更简单(因此更易于维护)。
接口、Base classes 和 OOP 很重要,因为您要用它来解决问题。如果您发现自己这样做却没有解决实际问题,我会认为它“过度使用”。
接口是 类 之间签署的合同,所有使用它的 类 都受接口规则的约束。
这种类型的设计更容易重用并增加维护。 假设您创建了一个车辆界面。所有交通工具都必须实现这个接口,包括自行车、摩托车、汽车等
这种设计风格造血,为你的程序创造出美观而有原则的架构
因此,如果您的 类 具有类似的行为,您可以使用接口或抽象 类。
可以参考这个link到compare abstract classes and interfaces