18 repositorios
Design patterns used to wrap existing classes to provide compatible interfaces.
Distinct from Adapters: Focuses on the software design pattern for interface compatibility, not UI or chat interfaces.
Explore 18 awesome GitHub repositories matching software engineering & architecture · Adapter Patterns. Refine with filters or upvote what's useful.
This project is a comprehensive collection of software design patterns implemented in Python. It serves as a reference for architectural, behavioral, creational, and structural patterns to guide the organization of Python applications. The collection covers behavioral strategies for managing object communication and state, creational techniques for controlling object instantiation, and structural methods for composing classes and objects into flexible hierarchies. It also includes architectural references for system-wide structuring, such as multi-tier architectures and blackboard models. Th
Implements the adapter pattern to allow objects with incompatible interfaces to collaborate.
DesignPatternsPHP is a reference collection of software architecture patterns implemented in PHP 8. It provides a guide for object-oriented programming through sample code demonstrating creational, structural, and behavioral design patterns. The project includes reference implementations for common patterns such as factories, builders, singletons, adapters, bridges, and proxies. Each implementation is accompanied by a PHPUnit test suite to verify that the patterns behave correctly and produce expected logical outcomes. The codebase covers a broad range of architecture capabilities, including
Implements adapter patterns to wrap incompatible classes and translate interfaces without modifying source code.
This is a collection of Python scripts designed for extracting data from popular Chinese websites and mobile applications. It functions as a multi-platform data extraction toolkit, capable of automating tasks such as downloading videos from platforms like Bilibili and Douyin, scraping product reviews and images from e-commerce sites like Taobao and JD.com, and booking train tickets on the 12306 railway system. The project distinguishes itself through its focus on automating specific, high-value tasks within the Chinese internet ecosystem. It includes capabilities for solving Chinese CAPTCHA c
Provides a unified interface for downloading media and content from multiple Chinese platforms.
This project is a comprehensive technical interview preparation resource and computer science interview guide. It serves as an educational reference for developers to study core software engineering fundamentals and common coding patterns required for employment screenings. The repository provides detailed guides and references covering data structures and algorithms, networking and security, operating systems, and web development. It specifically focuses on the implementation and complexity analysis of sorting, searching, and graph algorithms. The material encompasses a wide breadth of comp
Implements the Adapter pattern using wrapper classes to enable compatibility between incompatible interfaces.
Botkit is a multi-platform chatbot framework designed to build conversational bots that operate across different messaging services using a unified interface. It provides a core system for multi-platform development, utilizing a platform adaptation layer to translate service-specific API payloads into a standardized internal format. The framework features a conversational dialog manager that coordinates multi-turn interactions through state-tracking, branching logic, and scripted flows. It employs a message processing middleware pipeline to intercept, normalize, and enrich incoming and outgoi
Provides a specialized adapter to abstract the Google Hangouts API for multi-platform bot connectivity.
django-allauth is a comprehensive authentication framework for Django applications that manages user registration, account ownership verification, and secure login processes. It provides a system for handling the entire user account lifecycle, including the ability to define custom signup fields and implement identity verification. The project distinguishes itself by providing a suite of OAuth and SAML integrations for social account authentication and the capability to act as an OpenID Connect identity provider. It further supports decoupled architectures through a token-based headless authe
Implements an adapter pattern to allow developers to override default authentication and sign-in behaviors.
Nonebot2 is an asynchronous Python framework for building event-driven chatbots across multiple messaging platforms. It centers on a non-blocking event bus and a driver-based adapter system that unifies different messaging protocols into a single consistent interface. The framework utilizes a modular plugin architecture, allowing for the discovery and loading of third-party extensions to add new event handlers and system capabilities. It distinguishes itself with a type-annotation based dependency injection system that automatically resolves and provides required service objects to handlers a
Provides a driver-based adapter system that unifies different messaging protocols into a single consistent interface.
This is a Ruby toolkit for converting addresses to geographic coordinates and performing reverse geocoding via multiple external API providers. It provides a library for integrating location services into Ruby applications, including an IP geolocation tool to translate IP addresses into coordinates, city names, and country data. The project includes a command line interface for bulk geocoding of database records with integrated rate limiting and a geospatial query engine for calculating distances and performing radius or bounding box searches. It also features a mocking framework that provide
Implements the adapter pattern to standardize diverse external geocoding APIs into a single unified interface.
Omnipay es una librería de pasarela de pago PHP y framework de integración que abstrae múltiples proveedores de servicios de pago en una única API consistente. Proporciona una interfaz estandarizada para gestionar ciclos de vida de pago, permitiendo a las aplicaciones ejecutar autorizaciones, capturas y reembolsos a través de varios servicios financieros sin reescribir código para cada proveedor. El framework desacopla la lógica de la aplicación de los SDKs específicos del proveedor utilizando un patrón de adaptador y objetos de transferencia de datos. Esta arquitectura garantiza que las respuestas crudas de la pasarela y las solicitudes HTTP se conviertan en formas de datos predecibles, mientras que un cambio de entorno basado en configuración permite a los desarrolladores alternar entre endpoints de sandbox y API en vivo para probar flujos de transacciones. La librería cubre una amplia gama de capacidades de procesamiento de pagos, incluyendo tokenización de tarjetas de crédito para facturación recurrente y la validación de números de tarjeta utilizando el algoritmo de Luhn. Maneja la coordinación de ciclos de vida de transacciones, incluyendo la gestión de redirecciones fuera del sitio y el procesamiento de notificaciones de pasarela asíncronas mediante webhooks. La funcionalidad adicional incluye herramientas para personalizar payloads de solicitud con parámetros arbitrarios y transmitir datos detallados de partidas a las pasarelas de pago.
Implements the adapter pattern to wrap provider-specific APIs into a consistent internal format.
Este proyecto es una colección de referencia de ejemplos prácticos que demuestran la implementación de patrones de diseño de software comunes en Kotlin. Sirve como guía para las mejores prácticas arquitectónicas y principios orientados a objetos mediante la aplicación de patrones de comportamiento, creacionales y estructurales. La colección proporciona implementaciones concretas para demostrar cómo desacoplar la instanciación de objetos, gestionar la comunicación y responsabilidad entre objetos, y organizar relaciones complejas entre clases y objetos. La referencia cubre patrones creacionales como fábricas y constructores (builders), patrones estructurales incluyendo adaptadores y composites, y patrones de comportamiento como observadores y estrategias.
Implements the Adapter pattern to enable communication between incompatible interfaces.
Koishi is an open-source framework for building multi-platform chatbots, designed around an adapter-driven architecture that lets a single bot connect to multiple messaging services with consistent logic. It provides a plugin-based development platform with hot reload support, enabling developers to write and update bot extensions using TypeScript without restarting the application. A web-based management console offers a graphical interface for configuring plugins, commands, permissions, and monitoring runtime status. What distinguishes Koishi is its combination of a dynamic plugin lifecycle
Connects to multiple chat platforms by abstracting each platform's API behind a common adapter interface.
Solidus es un framework de comercio electrónico de código abierto y motor extensible diseñado para gestionar catálogos de productos, carritos de compra y procesamiento de pedidos. Funciona como un sistema de gestión de tiendas modular y un backend de comercio con API REST, permitiendo la integración de datos de la tienda con frontends personalizados y servicios externos para el comercio headless. El sistema se distingue por una arquitectura de extensión basada en plugins y un sistema de extensión de modelos basado en atributos, que permiten la adición de funcionalidades de negocio especializadas y campos de datos personalizados. Utiliza una máquina de estados para el procesamiento de pedidos para mover las compras a través de etapas predefinidas y emplea gestión de sesiones basada en tokens para mantener el estado del carrito tanto para invitados como para compradores autenticados. La plataforma cubre una amplia gama de operaciones comerciales, incluyendo flujos de trabajo de pago digital, procesamiento de pagos y selección de métodos de envío. Proporciona una interfaz administrativa de backend para la gestión de operaciones de la tienda, configuración de preferencias globales y alojamiento de activos de productos. La gestión de identidad se maneja a través de perfiles de usuario autenticados y soporte para integración de autenticación personalizada.
Supports connecting custom user models to internal identity management and user-specific data logic.
Este proyecto es una librería integral de veintitrés patrones de diseño de software estándar implementados en Java. Sirve como un recurso educativo que mapea conceptos arquitectónicos teóricos a código orientado a objetos práctico. La librería organiza estos patrones en tres categorías principales: patrones creacionales para gestionar la instanciación de objetos, patrones estructurales para organizar las relaciones entre clases y objetos, y patrones de comportamiento para coordinar la comunicación y responsabilidad entre objetos. La implementación proporciona ejemplos de clases concretas para una amplia gama de patrones estándar de la industria, incluyendo los patrones Singleton, Factory y Builder para la creación; los patrones Adapter, Facade y Proxy para la estructura; y los patrones Strategy, Observer y Command para el comportamiento.
Implements the Adapter pattern to allow incompatible interfaces to work together seamlessly.
This project is a collection of simplified explanations and code implementations for common software design patterns using JavaScript. It serves as a guide for implementing creational, structural, and behavioral design patterns to solve software architecture problems. The resource categorizes patterns into three primary groups. Creational patterns focus on flexible object instantiation and resource management. Structural patterns organize object relationships and interfaces to form efficient structures. Behavioral patterns manage communication and interaction between objects. The material co
Provides an implementation of the Adapter pattern to make incompatible interfaces compatible.
LuckyLilliaBot is a multi-protocol bot framework and protocol bridge that integrates diverse chat communication protocols to enable programmatic interaction in private and group conversations. It functions as a messaging gateway that translates internal messaging client functions into standardized WebSocket and HTTP protocols. The system employs a plugin-based adapter architecture to decouple chat platform logic and convert platform-specific messages into a standardized internal format. It exposes internal functions as standard web endpoints and persistent duplex connections to allow external
Employs chat platform adapters to abstract diverse APIs behind a common internal interface.
This is a structured logging library designed to produce logs using key-value pairs, severity levels, and machine-readable formats. It provides a toolkit for creating logs that are consistent for both human review and machine parsing. The project is distinguished by its focus on terminal visualization, using a styling system to apply colors and prefixes to log entries for improved readability in consoles. It also includes a specialized adapter to convert standard library log calls into structured events by inferring severity levels from message prefixes. The library manages metadata through
Uses adapter patterns to bridge the gap between standard library logging and structured logging interfaces.
Este proyecto sirve como recurso educativo y referencia técnica para implementar patrones de diseño de software clásicos dentro del lenguaje de programación Ruby. Proporciona una colección curada de ejemplos de código que demuestran cómo aplicar patrones de diseño de comportamiento, creacionales y estructurales para resolver problemas comunes de desarrollo de software. El repositorio se distingue por centrarse en la intersección de los principios de diseño establecidos y los mecanismos únicos del lenguaje Ruby. Ilustra cómo aprovechar el despacho dinámico de métodos, el duck typing y la composición basada en mixins para crear código modular y reutilizable. Al aplicar estos patrones, los desarrolladores pueden mejorar la mantenibilidad y escalabilidad de sus aplicaciones mientras reducen la deuda técnica mediante una refactorización y organización estructural efectivas. La colección cubre una amplia gama de enfoques arquitectónicos, incluyendo técnicas para gestionar la instanciación de objetos, simplificar relaciones complejas del sistema y desacoplar la comunicación entre objetos. Estos ejemplos traducen conceptos de diseño abstractos en implementaciones concretas e idiomáticas de Ruby, proporcionando una guía práctica para estructurar sistemas orientados a objetos.
Illustrates the adapter pattern to allow objects with incompatible interfaces to collaborate.
This library provides a standardized abstraction layer for PHP HTTP clients, enabling consistent request handling across diverse network transport implementations. It serves as a foundational toolkit for developers to manage network communication through unified interfaces, ensuring that application logic remains decoupled from specific underlying transport libraries. The project distinguishes itself through a decorator-based pipeline and a plugin-driven lifecycle system. These mechanisms allow for the interception and modification of request and response data, as well as the injection of cus
Implements design patterns to wrap existing classes and provide compatible interfaces for diverse network transports.