接口隔离原则(ISP)表示许多客户端特定接口优于一个通用接口.为什么这很重要?
ISP声明:
客户不应该被迫依赖他们不使用的方法.
ISP涉及重要特征 - 内聚和耦合.
理想情况下,您的组件必须高度定制.它提高了代码的健壮性和可维护性.
执行ISP会为您提供以下奖励:
高凝聚力 - 更好的可理解性,稳健性
低耦合 - 更好的可维护性,高抗变化性
如果您想了解有关软件设计原则的更多信息,请获取敏捷软件开发,原理,模式和实践手册的副本.
接口隔离是SOLID原则上的"I",在深入挖掘第一个之前,让我们解释后者意味着什么.
SOLID可以被视为一组专家提出的最佳实践和建议(意味着它们之前已被证明),以便为我们设计应用程序提供可靠的基础.这些实践旨在使我们的应用程序更易于维护,扩展,调整和扩展.
我为什么要关心SOLID编程?
首先,你必须意识到你不会永远在你身边.如果我们使用标准和众所周知的体系结构,我们可以确保我们的代码很容易被我们之后的其他开发人员维护,并且我确信您不希望处理修复代码的任务.没有应用任何已知的方法,因为它很难理解.
界面隔离原则.
知道我们知道什么是SOLID原则我们可以更详细地了解接口隔离原理,但接口隔离究竟是什么意思呢?
"客户不应该被迫实施他们不会使用的不必要的方法"
这意味着有时我们倾向于使用许多方法来创建接口,这在某种程度上可能是好的,但是这很容易被滥用,并且我们最终会得到实现空或无用方法的类,这当然会增加额外的代码和负担到我们的应用程序 想象一下,你在单个界面中声明了很多方法,如果你喜欢视觉辅助,那么实现一个接口的类实际上需要它的几个方法看起来像这样:
另一方面,如果您正确应用接口隔离并将接口拆分为较小的子集,我可以确保实现仅需要的接口:
看到!好多了!执行此原则将允许您具有低耦合,这有助于更好的可维护性和对变化的高抵抗力.因此,您可以真正利用接口的使用并在实际应用时实现这些方法.现在让我们回顾一个不太抽象的例子,比如说你声明了一个名为Reportable的接口
public interface Reportable { void printPDF(); void printWord(); void printExcel(); void printPPT(); void printHTML(); }
你有一个只能以Excel格式导出一些数据的客户端,你可以实现这个界面,但是你只需要实现excel方法吗?答案是否定的,即使您不打算使用它们,您也必须为所有方法编写实现代码,这可能会导致大量垃圾代码,从而使代码难以维护.
记住保持简单,不要重复自己,你会发现你已经在不知情的情况下使用这个原则.
它简化了任何一个客户端将使用的接口,并消除了他们可能在他们不需要的接口部分上开发的依赖关系.