awesome-repositories.com
博客
awesome-repositories.com

通过 AI 驱动的搜索,发现最优秀的开源仓库。

探索精选搜索开源替代品自托管软件博客网站地图
项目关于排名机制媒体报道MCP 服务器
法律隐私政策服务条款
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·

17 个仓库

Awesome GitHub RepositoriesInterface-Based Decoupling

Relying on abstract interfaces rather than concrete implementations to reduce coupling between components.

Distinct from Component Abstractions: Distinct from Component Abstractions: focuses on the principle of depending on interfaces, not the abstraction layer itself.

Explore 17 awesome GitHub repositories matching software engineering & architecture · Interface-Based Decoupling. Refine with filters or upvote what's useful.

Awesome Interface-Based Decoupling GitHub Repositories

用 AI 发现最棒的仓库。我们将通过 AI 为您搜索最匹配的仓库。
  • rust-unofficial/patternsrust-unofficial 的头像

    rust-unofficial/patterns

    8,843在 GitHub 上查看↗

    A catalogue of Rust design patterns, anti-patterns and idioms

    Promotes relying on abstract interfaces rather than concrete implementations to reduce coupling.

    Handlebarsantipatternsidiomspatterns
    在 GitHub 上查看↗8,843
  • teivah/100-go-mistakesteivah 的头像

    teivah/100-go-mistakes

    7,915在 GitHub 上查看↗

    100 Go Mistakes is a reference book and code review companion that catalogues frequent Go programming anti-patterns and provides corrected implementations for each one. It covers a wide range of common pitfalls, from range loop variable capture and interface nil handling to error wrapping and map iteration randomization, helping developers recognize and avoid these issues in their own code. The project distinguishes itself by offering a structured, example-driven approach to learning idiomatic Go. It covers core design decisions such as when to use pointer versus value receivers, how to apply

    Advocates defining interfaces on the consumer side to decouple code and enable implementation swapping.

    Gobookchinesedocumentation
    在 GitHub 上查看↗7,915
  • fuzhengwei/itstack-demo-designfuzhengwei 的头像

    fuzhengwei/itstack-demo-design

    6,779在 GitHub 上查看↗

    本项目是一个软件设计模式实现指南和架构参考。它提供了一系列实用的代码示例,演示了创建型、结构型和行为型模式,以提高软件的可维护性和质量。 该库包括通过创建型模式进行对象实例化的标准化实现、使用结构型模式将对象组装成高效层次结构的模板,以及通过行为型模式管理对象通信和职责分配的示例。 该项目将这些抽象设计模式映射到特定的业务领域(如交易和营销),以演示如何解决现实世界的软件问题。这包括应用多态运行时分派和基于接口的解耦,以降低系统复杂性并提高可扩展性。

    Employs abstract interfaces to separate high-level logic from low-level implementations for improved maintainability.

    Java
    在 GitHub 上查看↗6,779
  • filhodanuvem/gitqlfilhodanuvem 的头像

    filhodanuvem/gitql

    6,295在 GitHub 上查看↗

    Gitql 是一个 SQL 查询引擎和元数据搜索工具,旨在探索和检索版本控制系统中的信息。它提供了一种结构化查询语言,允许用户使用正式语法而不是标准命令行界面命令来过滤和提取项目历史中的资产。 该工具作为一个交互式数据浏览器,具有用于实时评估仓库数据的命令提示符界面。它将版本控制实体(如提交和标签)映射到虚拟关系表,从而能够执行顺序查询以审计历史并分析仓库元数据。 该系统涵盖了广泛的仓库资产检索功能,包括从拉取请求、议题和讨论中提取信息。它还包括用于仓库模式探索的机制,以识别哪些数据表可供查询。

    Implements an abstraction layer that decouples the SQL query engine from the underlying Git storage.

    Gogitgohacktoberfest
    在 GitHub 上查看↗6,295
  • juancrg90/clean-code-notesJuanCrg90 的头像

    JuanCrg90/Clean-Code-Notes

    6,119在 GitHub 上查看↗

    Clean-Code-Notes is a clean code study guide and a collection of detailed notes based on professional software development standards. It serves as documentation for coding standards and a reference for writing maintainable source code. The project provides technical summaries for object oriented design and software design patterns. It includes guidelines for organizing classes and interfaces to reduce coupling, isolating implementation details, and implementing architectural patterns such as dependency injection and interface abstraction. The resource also functions as an implementation guid

    Explains how to rely on abstract interfaces rather than concrete implementations to reduce coupling between components.

    bookclean-codenotes
    在 GitHub 上查看↗6,119
  • dbacinski/design-patterns-in-kotlindbacinski 的头像

    dbacinski/Design-Patterns-In-Kotlin

    5,998在 GitHub 上查看↗

    本项目是一个参考集合,展示了 Kotlin 中常见软件设计模式的实际实现。它通过行为型、创建型和结构型模式的应用,作为架构最佳实践和面向对象原则的指南。 该集合提供了具体的实现,演示了如何解耦对象实例化、管理对象间的通信与职责,以及组织复杂的类和对象关系。 该参考涵盖了工厂和构建器等创建型模式,适配器和组合模式等结构型模式,以及观察者和策略等行为型模式。

    Demonstrates the use of abstract interfaces to decouple high-level logic from concrete implementations.

    Kotlin
    在 GitHub 上查看↗5,998
  • antoniolg/androidmvpantoniolg 的头像

    antoniolg/androidmvp

    5,900在 GitHub 上查看↗

    该项目是 Android 应用程序 Model-View-Presenter 架构的参考实现。它作为一个结构化示例,展示了如何通过基于 Presenter 的框架将业务逻辑与用户界面分离。 该实现侧重于简洁架构方法,使用 Presenter 来协调数据模型与视图之间的所有通信。它采用被动视图模式和基于接口的解耦,将用户界面与领域规则隔离开来。 该架构结合了基于交互器的领域逻辑和分层分离,以减少系统耦合。这种结构实现了平台无关的单元测试,允许在标准 Java 虚拟机中验证应用程序逻辑,而无需 Android 框架或物理设备。

    Uses interface-based decoupling to separate the user interface from underlying business logic.

    Java
    在 GitHub 上查看↗5,900
  • hit-alibaba/interviewHIT-Alibaba 的头像

    HIT-Alibaba/interview

    5,253在 GitHub 上查看↗

    该项目是一个全面的技术面试准备指南和计算机科学知识库。它作为一个结构化的学习资源,旨在帮助软件工程师复习核心工程概念并准备专业编码评估。 该仓库专注于广泛的理论和实践领域,包括移动应用架构和操作系统基础的详细参考。它提供了关于软件架构模式和网络协议分析的精选材料,以支持职业发展。 该内容涵盖了基础能力,如数据结构与算法、并发与多线程以及内存管理。它还深入探讨了系统架构,包括进程调度、进程间通信和 UI 渲染优化。

    Separates object responsibilities by relying on abstract interfaces rather than concrete implementations.

    Shellinterviewinterview-preparation
    在 GitHub 上查看↗5,253
  • rrousselgit/providerrrousselGit 的头像

    rrousselGit/provider

    5,258在 GitHub 上查看↗

    Provider 是一个用于 Flutter 的状态管理和依赖注入框架。它通过一套管理对象和服务的注入系统,简化了组件树(widget tree)之间的数据共享,并具备自动化的生命周期管理和资源释放功能。 该框架的独特之处在于其响应式状态容器,能够将来自流(streams)和期值(futures)的异步数据直接桥接到组件树中。它支持状态派生,允许根据从多个上游 Provider 观察到的值来构建和同步新对象。为了保持性能,它提供了选择性重建过滤和部分状态订阅功能,以限制用户界面的更新范围。 该库涵盖了广泛的功能领域,包括用于解耦具体实现与抽象接口的界面映射,以及用于扁平化多个依赖定义并减少嵌套的 Provider 组合。它还包含用于可选依赖解析的工具,以及在开发热重载周期中保持应用状态的功能。

    Decouples components from concrete implementations by injecting dependencies through abstract interfaces, promoting testability.

    Dart
    在 GitHub 上查看↗5,258
  • php-ffmpeg/php-ffmpegPHP-FFmpeg 的头像

    PHP-FFmpeg/PHP-FFmpeg

    5,013在 GitHub 上查看↗

    PHP-FFmpeg 是一个面向对象的封装库,用于在 PHP 应用程序中执行 FFmpeg 二进制命令。它作为一个多媒体处理库和工具包,通过标准化的程序接口实现音频和视频文件的转码、剪辑、合并和过滤。 该项目为视频处理、音频编辑和媒体元数据提取提供了专门的驱动程序。这些驱动程序允许应用视觉滤镜、修改音频采样率,并探测多媒体文件以获取技术规格和验证文件完整性。 该库涵盖了广泛的媒体处理能力,包括格式转换、流同步和音频波形生成。它支持程序化的视频编辑任务,如帧提取、媒体拼接,以及用于合成多个媒体源的复杂滤镜图编排。

    Utilizes PHP interfaces to decouple the library API from specific versions of the underlying FFmpeg binary.

    PHP
    在 GitHub 上查看↗5,013
  • yuin/goldmarkyuin 的头像

    yuin/goldmark

    4,860在 GitHub 上查看↗

    Goldmark 是一个用 Go 编写的 Markdown 解析器和渲染器,将 Markdown 文本转换为 HTML 或 XHTML。它实现了 CommonMark 规范,以确保解析行为的一致性。 该项目利用模块化扩展注册表,允许添加自定义语法,如表格、任务列表和脚注。它还包括对 CJK(中日韩)语言的专门支持,以处理特定的换行和强调规则。 该库将文本解析为抽象语法树,以便进行程序化的文档分析和修改。其功能包括 URL 和电子邮件的自动链接、排版标点格式化以及为元素分配自定义属性。

    Decouples document structure from output formats by using abstract interfaces to map nodes to targets.

    Gocommonmarkgogolang
    在 GitHub 上查看↗4,860
  • qianmo/unity-design-patternQianMo 的头像

    QianMo/Unity-Design-Pattern

    4,659在 GitHub 上查看↗

    This project is a library of C# software architecture examples and a reference for game programming patterns specifically implemented for the Unity engine. It provides a collection of Gang of Four and specialized game programming patterns to organize software components and improve code scalability. The implementation covers structural and behavioral patterns used to manage state and performance in real-time game simulations. It focuses on translating theoretical design patterns into working code to improve maintainability and system structure. The architecture includes patterns for action e

    Uses abstract interfaces to decouple game components and allow interchangeable pattern implementations.

    C#bridge-patterncommand-patterncsharp-design-patterns
    在 GitHub 上查看↗4,659
  • zeux/pugixmlzeux 的头像

    zeux/pugixml

    4,590在 GitHub 上查看↗

    pugixml 是一个轻量级的 C++ XML 解析器和基于 DOM 的库,用于解析、操作和保存 XML 文档。它提供了一个便携式工具集,用于从文件、字符串或内存缓冲区读取 XML 数据,并将其转换为内存中的文档对象模型。 该库包含一个专用的 XPath 1.0 引擎,用于通过路径表达式提取特定节点和数据。它通过可定制的内存管理脱颖而出,允许将堆操作重定向到用户定义的分配函数,并能够执行就地缓冲区解析以减少内存分配。 其功能涵盖 XML 数据操作(如插入或删除节点和属性),以及用于将结构化数据导出到流或文件的文档序列化。该项目还提供通过迭代器和 Walker 对象进行树遍历的机制,以及用于重定向输出目标的 Writer 接口。

    Uses a writer interface to decouple XML serialization from the final storage destination.

    C++
    在 GitHub 上查看↗4,590
  • failsafe-lib/failsafefailsafe-lib 的头像

    failsafe-lib/failsafe

    4,307在 GitHub 上查看↗

    Failsafe is a JVM fault tolerance library and resilience pattern framework. It provides a toolkit for implementing circuit breakers, rate limiters, and other stability patterns within Java Virtual Machine applications to prevent cascading failures in distributed systems. The project is distinguished by its policy-based execution pipeline, which allows for the composition of multiple resilience patterns into a sequential flow. It features a state-machine circuit breaker to manage service recovery and a leaky-bucket rate limiter to control operation frequency. The library covers a broad range

    Decouples the timing and execution of delayed tasks from specific JVM threading implementations via a service provider interface.

    Javabulkheadcircuit-breakerfallback
    在 GitHub 上查看↗4,307
  • luckybilly/ccluckybilly 的头像

    luckybilly/CC

    4,041在 GitHub 上查看↗

    CC 是一个 Android 组件化框架和模块化工具,旨在将单体应用转换为独立组件。它提供了一个用于隔离启动和调试单个组件以缩短编译时间的系统,以及一个用于使用统一接口跨不同 Android 进程执行函数的通信层。 该项目利用构建时字节码插件自动注册组件和拦截器,消除了手动配置样板代码的需要。它支持增量架构迁移,允许代码库逐步向组件化结构迈进,而无需完全重写。 该框架通过共享接口处理组件映射,并通过基于拦截的请求流水线路由调用。这些功能促进了解耦的模块管理和跨进程服务调用。

    Connects callers to implementations through shared interfaces to decouple components while maintaining type safety.

    Javaandroid-architectureandroid-componentarchitecture-components
    在 GitHub 上查看↗4,041
  • lektor/lektorlektor 的头像

    lektor/lektor

    3,945在 GitHub 上查看↗

    Lektor 是一个基于 Python 的静态网站生成器和纯文本内容管理系统。它将原始内容和数据模型转换为静态 HTML 页面,并将所有网站数据存储在分层文件系统中,而不是关系数据库中。 该系统作为一个模型驱动的 CMS 运行,利用蓝图和模式来控制数据捕获和验证。它提供了一个基于浏览器的管理界面,允许用户在不直接修改源代码的情况下可视化编辑和组织网站内容。 该平台管理整个网站生命周期,涵盖静态网站生成、多语言本地化和部署。它通过针对各种托管提供商的可互换发布者接口,将生成过程与上传机制解耦。 可扩展性通过插件系统处理,允许将自定义逻辑集成到构建过程中,而主题则捆绑了模板、模型和资产以供跨项目重用。

    Decouples site generation from the upload mechanism via interchangeable publisher interfaces.

    Pythoncmsstatic-site-generator
    在 GitHub 上查看↗3,945
  • matthewrenze/clean-architecture-demomatthewrenze 的头像

    matthewrenze/clean-architecture-demo

    1,217在 GitHub 上查看↗

    该项目作为在 C# 环境中应用整洁架构(Clean Architecture)原则的参考实现。它展示了如何通过将代码组织成同心、独立的层来构建企业级应用程序,从而将核心业务逻辑与外部基础设施、框架和数据库关注点隔离开来。 代码库展示了领域驱动设计(DDD)的应用,将软件逻辑集中在业务实体和规则周围。它利用基于接口的解耦和依赖倒置,确保高层策略不了解底层实现细节,从而促进长期的可维护性和可测试性。 为了管理数据访问,该项目采用了存储库模式(Repository Pattern)来抽象存储技术。这种方法将领域层与特定的持久化机制解耦,允许在不修改核心应用逻辑的情况下替换数据提供程序。依赖注入贯穿始终,用于管理对象生命周期和组件装配。

    Uses abstract interfaces to decouple high-level policies from low-level implementation details.

    C#
    在 GitHub 上查看↗1,217
  1. Home
  2. Software Engineering & Architecture
  3. Component Abstractions
  4. Interface-Based Decoupling

探索子标签

  • Deployment Publisher InterfacesInterchangeable interfaces that decouple the generation of static files from the upload process. **Distinct from Interface-Based Decoupling:** Specific to the publishing stage of a static site generator rather than general component decoupling.
  • Scheduler AbstractionsDecoupling task timing and execution from specific threading implementations via interfaces. **Distinct from Interface-Based Decoupling:** Distinct from Interface-Based Decoupling: specifically addresses the abstraction of task scheduling and timing mechanisms.
  • Serialization Output RedirectionDecouples the XML serialization process from the storage destination via a writer interface. **Distinct from Interface-Based Decoupling:** Focuses on redirecting the output of an XML serializer, not general component decoupling.
  • Version Control AbstractionsAbstraction layers that decouple query logic from specific version control storage implementations. **Distinct from Interface-Based Decoupling:** Distinct from Interface-Based Decoupling by specifically targeting the abstraction of version control systems rather than general component decoupling.