架构整洁之道-07 设计原则-接口隔离原则SIP

简介: 接口隔离原则 Interface Segregation Principle,ISP- 客户端不应该依赖它不需要的接口- 类间的依赖关系应该建立在最小的接口上

接口隔离

接口隔离原则 Interface Segregation Principle,ISP

  • 客户端不应该依赖它不需要的接口
  • 类间的依赖关系应该建立在最小的接口上

我的理解,在定义接口时方法应该尽量的少,且一个接口对于一个功能模块,避免出现某类实现接口,但仅使用接口中一个方法,或者避免出现一个接口中出现很多个方法,多个功能模块都去访问该接口。

所以,将接口尽量保持小颗粒度,不增加无用的方法,这样在实现接口或继承抽象类时,子类可以灵活扩展增加自己方法和实现自己的功能。如果基类的划分比较大的功能,就会导致子类扩展性变得比较差。

interface Reader{
  read():void;
  write():void;
  trim():void;
}

Reader类赋予了read方法,write方法,trim方法,但如果某具体Reader子类只需要Read方法,而其他的方法对其时无用,却仍需要实现它们。这就违反了接口隔离原则。可以继续划分其颗粒,通过三个接口来代替原Reader接口,这三个接口的方法的粒度更小,对功能也是更清晰。

如何正确使用接口隔离原则

  • 根据接口隔离原则拆解接口时,必须优先满足单一职责。因在某些业务场景中可能确实需要比较多方法,单一职责必然会与接口隔离原则产生冲突,接口应该是针对某功能模块去划分,即一个接口只服务一个字模块或业务逻辑
  • 为依赖接口的类定制服务。即只提供调用者需要的方法,屏蔽不需要的方法
  • 提高内聚,减少对外的交互,使接口用最少的方法完成最多事情

你会发现接口隔离原则 与 单一职责原则都是在强调如何正确去使用接口,但是它们之间时存在区别的:

  • 单一职责要求类和接口职责单一,是对业务逻辑的划分
  • 接口隔离要求接口中方法尽量少,是对接口的设计考虑
目录
相关文章
|
7月前
|
前端开发 Java 测试技术
使用整洁架构优化你的 Gradle Module
使用整洁架构优化你的 Gradle Module
74 0
|
存储 Go 数据处理
Go 语言整洁架构实践
Go 语言整洁架构实践
110 0
|
1月前
|
弹性计算 Kubernetes Cloud Native
云原生架构下的微服务设计原则与实践####
本文深入探讨了在云原生环境中,微服务架构的设计原则、关键技术及实践案例。通过剖析传统单体架构面临的挑战,引出微服务作为解决方案的优势,并详细阐述了微服务设计的几大核心原则:单一职责、独立部署、弹性伸缩和服务自治。文章还介绍了容器化技术、Kubernetes等云原生工具如何助力微服务的高效实施,并通过一个实际项目案例,展示了从服务拆分到持续集成/持续部署(CI/CD)流程的完整实现路径,为读者提供了宝贵的实践经验和启发。 ####
|
22天前
|
监控 持续交付 API
深入理解微服务架构:从设计原则到实践应用
深入理解微服务架构:从设计原则到实践应用
|
22天前
|
运维 监控 安全
深入理解微服务架构:设计原则、挑战与实践
深入理解微服务架构:设计原则、挑战与实践
|
2月前
|
运维 Cloud Native 持续交付
云原生架构下的微服务设计原则与实践####
【10月更文挑战第20天】 本文深入探讨了云原生环境中微服务设计的几大核心原则,包括服务的细粒度划分、无状态性、独立部署、自动化管理及容错机制。通过分析这些原则背后的技术逻辑与业务价值,结合具体案例,展示了如何在现代云平台上实现高效、灵活且可扩展的微服务架构,以应对快速变化的市场需求和技术挑战。 ####
50 7
|
1月前
|
Kubernetes Cloud Native 持续交付
云原生架构下的微服务设计原则与最佳实践##
在数字化转型的浪潮中,云原生技术以其高效、灵活和可扩展的特性成为企业IT架构转型的首选。本文深入探讨了云原生架构的核心理念,聚焦于微服务设计的关键原则与实施策略,旨在为开发者提供一套系统性的方法论,以应对复杂多变的业务需求和技术挑战。通过分析真实案例,揭示了如何有效利用容器化、持续集成/持续部署(CI/CD)、服务网格等关键技术,构建高性能、易维护的云原生应用。文章还强调了文化与组织变革在云原生转型过程中的重要性,为企业顺利过渡到云原生时代提供了宝贵的见解。 ##
|
3月前
|
监控 Cloud Native 持续交付
云原生时代的微服务架构设计原则与实践
【9月更文挑战第27天】本文深入探讨了在云原生环境下,如何高效地实施微服务架构。通过分析微服务的基本概念、设计原则和关键技术,结合实际案例,指导读者理解并应用微服务架构于云计算项目之中。文章旨在为软件开发者和架构师提供一条清晰的路径,以实现更加灵活、可扩展且易于维护的系统。
|
2月前
|
Cloud Native 持续交付 数据安全/隐私保护
云原生时代的微服务架构设计原则
在数字化浪潮中,企业纷纷上云以获得更大的灵活性和扩展性。云原生技术因此成为现代软件开发的核心。本文将深入探讨在云原生环境下如何设计高效、可靠的微服务架构,涵盖关键设计原则、最佳实践以及面临的挑战。我们将通过实际案例分析,揭示如何在云原生生态中构建和维护微服务,确保系统的稳定性和可维护性。
|
4月前
|
分布式计算 负载均衡 API
微服务架构设计原则与模式
【8月更文第29天】随着云计算和分布式计算的发展,微服务架构已成为构建大型复杂应用的一种流行方式。这种架构模式将单个应用程序分解成一组小型、独立的服务,每个服务运行在其自己的进程中,并通过轻量级机制(通常是HTTP资源API)进行通信。本文将探讨微服务架构的基本设计原则、常用模式以及如何有效地划分服务边界。
414 3