21 repositorios
Design patterns for constructing complex objects step-by-step.
Distinct from Creational Design Patterns: Distinct from Creational Design Patterns: specifically targets the Builder implementation.
Explore 21 awesome GitHub repositories matching software engineering & architecture · Builder Patterns. Refine with filters or upvote what's useful.
This project is a comprehensive educational resource designed to help developers master object-oriented design and architectural patterns. It serves as a structured reference for understanding how to organize classes and objects to improve code maintainability, resolve recurring development challenges, and prepare for technical engineering assessments. The guide covers the three primary categories of design patterns: creational, structural, and behavioral. Each pattern is explained through practical examples that demonstrate how to manage object instantiation, simplify complex interfaces, and
Implements the Builder pattern to construct complex objects step-by-step.
material-dialogs is a Kotlin UI component library that provides a collection of modal dialogs and bottom sheets for Android applications. It is designed to implement user interface elements that follow Material Design standards. The library provides specialized modal interfaces for selecting calendar dates, clock times, and specific color values. It also includes system chooser integrations for selecting files and directories from local storage. Beyond pickers, the library covers a broader range of interaction components including text input dialogs, modal alerts with action buttons, and bot
Implements a fluent API for the step-by-step construction of complex modal dialog configurations.
Lombok is a Java annotation processor and boilerplate reduction library designed to automatically generate repetitive source code. It intercepts the compilation process to inject methods and fields directly into Java classes, acting as a source code generator that eliminates the need to manually write common class patterns. The project distinguishes itself through deep integration with the Java compiler and various integrated development environments. It provides IDE plugins that allow editors to recognize and navigate generated methods, preventing false compilation errors and maintaining syn
Implements the builder design pattern to allow flexible, step-by-step construction of complex Java objects.
JsonCpp is a C++ library for parsing, manipulating, and generating JSON data. It functions as a data interchange tool that provides a JSON parser to convert formatted text into structured data and a JSON serializer to transform internal data structures back into valid JSON strings. The library features the ability to preserve non-standard JSON comments during the deserialization and serialization process, which supports the management of human-readable configuration files. The project implements a tree-based internal representation for programmatic data access and uses a builder-based config
Implements a builder pattern to manage specific parser and generator settings such as indentation.
RIBs is a mobile architecture framework that structures applications around isolated, lifecycle-managed units of business logic called RIBs. Each RIB separates routing, business logic, and construction into distinct classes through the Router-Interactor-Builder pattern, with hierarchical dependency injection scoping dependencies per node and static analysis enforcing architectural rules at build time. The framework enforces automatic disposal of Rx subscriptions scoped to interactor lifecycles, blocking compilation when subscriptions lack proper disposal to prevent memory leaks. It supports v
Defines the core Router-Interactor-Builder pattern that structures every component in the framework.
This is a demonstration and template project that applies Clean Architecture principles to SwiftUI application development. It implements a layered architecture that separates presentation, business logic, and data access into independent layers, with unidirectional data flow managed through a single immutable app store that serves as the sole source of truth for all screens. The project distinguishes itself through its implementation of interactor-driven business logic, where all domain rules and workflows live in stateless objects that receive requests and update the central store. Dependen
Places all domain rules and workflows into stateless interactor objects that update the central store.
This is a Java library for creating and verifying JSON Web Tokens (JWTs), supporting multiple cryptographic signing algorithms including HMAC, RSA, and ECDSA. The library provides a builder pattern for constructing tokens with custom claims and algorithm selection, and offers separate verification methods that check signatures and validate standard claims such as expiration, issuer, and audience. The library abstracts cryptographic algorithms behind a common interface, allowing pluggable signing and verification without coupling token creation to a specific algorithm. Tokens are represented a
Constructs tokens using a builder pattern that chains claims and algorithm selection before finalizing.
Ion is an asynchronous HTTP client library for Android that handles network requests, JSON parsing, image loading, and file downloads. It provides a fluent builder pattern for constructing requests and supports automatic JSON deserialization into Java objects using Gson, along with in-memory image caching and multipart form-data encoding. The library distinguishes itself through its support for request cancellation via Future objects, allowing individual or bulk cancellation of in-flight requests to avoid wasted bandwidth and stale callbacks. It also includes proxy-aware request routing for d
Requests are constructed by chaining method calls on a builder object, enabling readable sequential configuration.
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 builder pattern to construct complex objects through a managed sequence of steps.
Este proyecto es una implementación de referencia de la arquitectura Model-View-Presenter para aplicaciones Android. Sirve como un ejemplo estructural de cómo separar la lógica de negocio de la interfaz de usuario a través de un framework basado en presentadores. La implementación se centra en un enfoque de arquitectura limpia (clean architecture), utilizando presentadores para mediar toda la comunicación entre el modelo de datos y la vista. Emplea un patrón de vista pasiva y desacoplamiento basado en interfaces para aislar la interfaz de usuario de las reglas de dominio. La arquitectura incorpora lógica de dominio basada en interactores y separación en capas para reducir el acoplamiento sistémico. Esta estructura permite pruebas unitarias agnósticas a la plataforma, permitiendo verificar la lógica de la aplicación dentro de una máquina virtual Java estándar sin requerir el framework de Android o un dispositivo físico.
Implements interactor-based domain logic to isolate business rules from the UI layer.
BoomMenu es una librería de menús radiales para Android y un framework de animación de UI diseñado para crear botones de acción flotantes expandibles. Proporciona un conjunto de componentes de vista personalizados programables que revelan elementos de submenú en patrones radiales, horizontales o verticales utilizando transformaciones 3D. La librería destaca por su motor de animación de transformación 3D que utiliza easing no lineal, escalado y rotación para crear profundidad durante la expansión del menú. Incluye patrones de diseño especializados para menús estilo "compartir" y un sistema de mapeo basado en coordenadas para un desplazamiento preciso de los elementos. El framework cubre una amplia gama de capacidades de UI, incluyendo la construcción flexible de menús con botones etiquetados, actualizaciones de contenido dinámico y oscurecimiento del fondo para el enfoque visual. Admite la integración en varios componentes de Android como barras de acción, fragmentos y vistas desplazables, mientras proporciona herramientas para el posicionamiento arrastrable y el control programático del estado. Para mantener el rendimiento, el proyecto implementa una caché de recursos de reciclaje de vistas para reutilizar instancias de botones y reducir la creación de objetos durante los ciclos de expansión.
Uses the builder design pattern to construct complex menu button properties and layout configurations.
Okdownload es un motor de descarga HTTP multihilo y librería de transferencia diseñada para la descarga concurrente de archivos. Funciona como un descargador de archivos reanudable que divide archivos únicos en múltiples bloques para procesamiento simultáneo con el fin de aumentar el rendimiento de la red y las velocidades de transferencia. El sistema se distingue por un framework de inyección de componentes basado en builder y un patrón de estrategia que permite motores de descarga personalizados. Los desarrolladores pueden reemplazar los módulos predeterminados de almacenamiento y conexión o sobrescribir la lógica utilizada para la división de bloques y la generación de nombres de archivo. La librería proporciona una orquestación de colas integral, incluyendo programación de tareas basada en prioridad y gestión de concurrencia global para regular el tráfico de red. La fiabilidad se gestiona mediante el seguimiento de puntos de interrupción para la reanudación de descargas interrumpidas, pre-asignación de disco y validación de integridad de contenido. Las capacidades de monitoreo incluyen el cálculo de velocidad de transferencia en tiempo real y un sistema de eventos multi-oyente para el seguimiento del progreso.
Uses a builder pattern to allow replacement of default storage and connection modules with custom implementations.
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.
Provides a concrete implementation of the Builder pattern for step-by-step construction of complex objects.
openai-java es una biblioteca cliente de Java y kit de desarrollo de software diseñado para integrar servicios de OpenAI en aplicaciones Java. Funciona como un wrapper programático para endpoints de modelos de lenguaje grandes, permitiendo la implementación de capacidades de IA generativa como completado de chat, incrustaciones de texto y la orquestación de agentes de IA. La biblioteca admite una amplia gama de tareas multimodales, incluyendo la generación y edición de imágenes, así como la transcripción y traducción de audio. Proporciona herramientas especializadas para el entrenamiento y ajuste fino de modelos, permitiendo a los usuarios cargar conjuntos de datos para mejorar el rendimiento del modelo en dominios específicos. Además, incluye capacidades para la ejecución de funciones personalizadas y moderación de contenido para filtrar la entrada y salida según las pautas de seguridad. El SDK utiliza un patrón de constructor para la construcción de solicitudes y mapea los recursos de la API a clases de Java fuertemente tipadas. Admite tanto ciclos de solicitud-respuesta síncronos como la entrega incremental de datos mediante eventos enviados por el servidor para el streaming de respuestas en tiempo real.
Employs the builder pattern to configure complex API request payloads with optional parameters.
JDA es una biblioteca de Java que sirve como envoltorio de la API de Discord, framework de bots y cliente de API de voz. Permite a las aplicaciones interactuar con la API REST de Discord y el gateway en tiempo real para construir asistentes automatizados, gestionar servidores y manejar interacciones de usuario. El proyecto incluye un gestor de sharding para distribuir conexiones de gateway a través de múltiples shards para escalar despliegues de alto volumen. También proporciona una biblioteca de componentes de UI para construir botones interactivos, menús de selección y formularios modales dentro de los mensajes. Sus capacidades cubren la gestión de voz y audio, incluyendo streaming de audio y reproducción de soundboard. La biblioteca también incluye herramientas para gestión comunitaria, administración de servidores y moderación de contenido automatizada mediante disparadores basados en reglas. El sistema implementa una variedad de patrones arquitectónicos, incluyendo un registro de oyentes basado en eventos, caché de memoria configurable y manejo automático de límites de tasa para solicitudes de API.
Uses the builder pattern to construct complex API objects and interactive UI components through fluent interfaces.
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
Implements the Builder pattern for step-by-step construction of complex objects.
Testcontainers for .NET es una biblioteca de pruebas de Docker y un framework de pruebas de integración diseñado para gestionar el ciclo de vida de contenedores desechables. Proporciona abstracciones de alto nivel como un wrapper de la API de Docker para aprovisionar infraestructura efímera, reemplazando mocks con instancias reales de bases de datos, mensajería y motores de búsqueda para garantizar entornos de prueba aislados y reproducibles. El proyecto se distingue por un patrón de configuración de contenedor mediante constructor y un mecanismo de enlace de puertos dinámico que evita colisiones durante la ejecución concurrente de pruebas. Permite una comunicación servicio a servicio confiable a través de orquestación de red virtual y alias de red, y garantiza la disponibilidad del servicio mediante comprobaciones de preparación basadas en polling para endpoints HTTP y puertos TCP. La biblioteca proporciona módulos especializados para bases de datos relacionales, NoSQL y vectoriales, así como brokers de mensajería y emuladores de servicios en la nube. Su superficie de capacidades se extiende a la configuración de imágenes de contenedor, recolección de logs y la simulación de condiciones de red para verificar la resiliencia del sistema. Admite la conectividad a runtimes de Docker locales y remotos a través de variables de entorno y archivos de configuración estandarizados.
Implements a fluent builder pattern to define container specifications before instantiating the actual resource.
utoipa is a Rust API documentation tool used to generate machine-readable OpenAPI specifications. It functions as a specification generator and schema mapper that converts Rust structs and enums into compliant OpenAPI schemas. The project distinguishes itself by using procedural macros and traits to automate metadata extraction from code. It supports complex data modeling, including generics, polymorphism, and recursive type resolution, while synchronizing field renaming and tagging from serialization attributes. It also enables the composition of modular specifications, allowing multiple sma
Implements a builder pattern to create structured specification documents and define root configurations.
Rueidis is a high-performance Redis client library for Go that provides a type-safe and asynchronous interface for interacting with Redis servers. It includes a full implementation of the Redis serialization protocol and a dedicated connection manager to handle pooling, multiplexing, and automatic pipelining. The library is distinguished by its support for RDMA connectivity to reduce latency and CPU overhead. It features a distributed lock manager that implements majority-based locking and optimistic concurrency control, as well as client-side caching with invalidation signals to minimize net
Employs a type-safe builder pattern to construct database commands ensuring binary compatibility.
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.
Provides implementations of the builder pattern for constructing complex objects through step-by-step configuration.