awesome-repositories.com
Blog
awesome-repositories.com

Découvrez les meilleurs dépôts open-source grâce à notre recherche par IA.

ExplorerRecherches sélectionnéesAlternatives open sourceLogiciels auto-hébergésBlogPlan du site
ProjetÀ proposNotre méthodologiePresseServeur MCP
Mentions légalesConfidentialitéConditions d'utilisation
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
faif avatar

faif/python-patterns

0
View on GitHub↗
42,801 stars·7,015 forks·Python·4 vues

Python Patterns

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.

The project further addresses software quality through the identification of architectural anti-patterns and the implementation of testability patterns, specifically using dependency injection to decouple components. Additional capabilities include the use of central registries for dynamic class lookup and specialized algorithms for graph and container traversal.

Features

  • Structural Patterns - Provides a comprehensive collection of structural design patterns including facades, adapters, proxies, and decorators.
  • Behavioral Design Patterns - Provides a comprehensive collection of behavioral design patterns, including observers, strategies, commands, and state machines.
  • Creational Design Patterns - Provides a comprehensive collection of creational design patterns including factories, builders, and prototypes.
  • Design Pattern Collections - Serves as a comprehensive collection of diverse software design patterns implemented in Python.
  • Proxies - Implements the proxy pattern to add logic like logging or caching without changing the resource interface.
  • Factory Functions - Uses factory functions and callables to decouple client logic from the specific concrete classes being created.
  • Python - Implements behavioral design patterns using Python-specific idioms like observers and state machines.
  • Adapter Patterns - Implements the adapter pattern to allow objects with incompatible interfaces to collaborate.
  • Anti-Patterns - Identifies common architectural pitfalls and provides structural alternatives to avoid ineffective design choices.
  • State Patterns - Implements the state design pattern to manage object behavior through state transitions.
  • Architectural Patterns - Provides reference implementations for 3-tier architecture, MVC, and blackboard models.
  • Component Abstractions - Separates high-level interface definitions from concrete implementations to allow independent variation of components.
  • Composite Patterns - Implements the composite pattern to represent part-whole hierarchies as tree structures.
  • Factory Method Patterns - Implements factory method patterns to instantiate objects without specifying concrete classes.
  • Prototype Patterns - Implements the prototype pattern for creating new objects by cloning existing instances.
  • Decoupling Patterns - Implements decoupling patterns to separate high-level interfaces from their concrete implementations.
  • Delegation Patterns - Implements delegation patterns to achieve object reuse through composition instead of inheritance.
  • Facades - Implements the facade pattern to provide a single unified entry point to complex subsystems.
  • Dependency Injection - Uses dependency injection to decouple components and improve the ease of writing unit tests.
  • Object Builders - Implements the builder pattern to separate the specification of complex objects from their representation.
  • Object Composition Patterns - Implements object composition strategies using adapters and decorators to extend behavior without inheritance.
  • Observer Patterns - Implements the observer pattern to notify dependent objects automatically when a subject state changes.
  • Separation of Concerns - Implements architectural patterns to divide systems into presentation, processing, and data layers.
  • Service Providers - Provides shared functionality to unrelated classes through service providers to avoid rigid inheritance.
  • Software Architecture Patterns - Applies standardized architectural design patterns to structure Python applications for maintainability.
  • Object Oriented Design - Implements creational and structural design patterns in Python to manage object instantiation and composition.
  • Software Design Patterns - Serves as a comprehensive reference for applying standard software design patterns in Python.
  • State Patterns - Moves state-specific logic into separate classes to change object behavior at runtime without conditional blocks.
  • Structural Design Patterns - Implements methods for composing objects using adapters, proxies, and decorators.
  • Testability Optimizations - Uses dependency injection and decoupling techniques in Python to improve code isolation and unit testability.
  • Code Refactoring - Identifies architectural anti-patterns and provides clean, idiomatic Python refactoring alternatives.
  • Publish-Subscribe Systems - Provides a central provider to distribute messages from publishers to interested subscribers.
  • Object Extensions - Implements techniques for dynamically extending objects with new features at runtime.
  • Hierarchical State Composition - Manages complex states by nesting finite state machines where child states inherit or override parent behavior.
  • Mediator Patterns - Implements a central mediator object to coordinate communication and reduce direct coupling between components.
  • Blackboard Patterns - Provides a reference implementation of the blackboard architectural pattern.
  • Callable Factories - Implements object instantiation via callables to achieve better decoupling.
  • Chain of Responsibility Patterns - Implements the passing of requests through linked handlers until a processing condition is fulfilled.
  • Class Registries - Tracks subclasses in a central data structure during definition to allow dynamic lookup of implementations.
  • Command Patterns - Encapsulates requests as objects to decouple the triggering of a job from its internal execution logic.
  • Decoupled Logic Layers - Implements architectural separation between data operations and presentation layers.
  • Dispatch Table Patterns - Provides a mechanism to map parameters to specific methods via dictionaries to avoid complex if-else chains.
  • Dispatch Tables - Maps input parameters to specific methods using lookup tables to replace complex conditional logic chains.
  • Service Injection Patterns - Implements service injection patterns to provide dependencies via constructors or setters.
  • Memento Patterns - Implements state capturing mechanisms to revert objects to previous internal conditions.
  • Object Pooling - Provides an implementation of object pooling to recycle instances and reduce allocation overhead.
  • Request Interception Middleware - Implements a single entry point to intercept and delegate incoming requests to specific handlers.
  • Validation Chains - Implements sequences of validation rules using boolean operators to verify complex object requirements.
  • Immutable State Patterns - Implements immutable state patterns using object pooling to share identical instances.
  • Strategy Patterns - Provides interchangeable algorithm encapsulations that can be selected and swapped during application runtime.
  • Template Method Patterns - Establishes base process structures that allow subclasses to define specific step implementations.
  • Visitor Patterns - Implements the decoupling of operations from object structures to facilitate the addition of new behaviors.
  • Algorithms and Patterns - Collection of common software design patterns.
  • Design Patterns - Concise collection of design patterns and idioms for Python.
  • Language Specific Resources - A collection of design patterns implemented in Python.
  • Language Style Guides - Collection of common design patterns implemented in Python.
  • Programming Language Patterns - Collection of design patterns implemented in Python.

Historique des stars

Graphique de l'historique des stars pour faif/python-patternsGraphique de l'historique des stars pour faif/python-patterns

Recherche par IA

Explorez plus de dépôts awesome

Décrivez vos besoins en langage naturel — l'IA classe des milliers de projets open source sélectionnés par pertinence.

Start searching with AI

Alternatives open source à Python Patterns

Projets open source similaires, classés selon le nombre de fonctionnalités partagées avec Python Patterns.
  • dbacinski/design-patterns-in-kotlinAvatar de dbacinski

    dbacinski/Design-Patterns-In-Kotlin

    5,998Voir sur GitHub↗

    This project is a reference collection of practical examples demonstrating the implementation of common software design patterns in Kotlin. It serves as a guide to architectural best practices and object-oriented principles through the application of behavioral, creational, and structural patterns. The collection provides concrete implementations to demonstrate how to decouple object instantiation, manage communication and responsibility between objects, and organize complex class and object relationships. The reference covers creational patterns such as factories and builders, structural pa

    Kotlin
    Voir sur GitHub↗5,998
  • youlookwhat/designpatternAvatar de youlookwhat

    youlookwhat/DesignPattern

    5,115Voir sur GitHub↗

    This project is a comprehensive library of twenty-three standard software design patterns implemented in Java. It serves as an educational resource that maps theoretical architectural concepts to practical object-oriented code. The library organizes these patterns into three primary categories: creational patterns for managing object instantiation, structural patterns for organizing class and object relationships, and behavioral patterns for coordinating communication and responsibility between objects. The implementation provides concrete class examples for a wide range of industry-standard

    Javadesignpatterndesignpatternsjava
    Voir sur GitHub↗5,115
  • sohamkamani/javascript-design-patterns-for-humansAvatar de sohamkamani

    sohamkamani/javascript-design-patterns-for-humans

    4,481Voir sur GitHub↗

    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

    Voir sur GitHub↗4,481
  • domnikl/designpatternsphpAvatar de domnikl

    domnikl/DesignPatternsPHP

    22,188Voir sur GitHub↗

    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

    PHP
    Voir sur GitHub↗22,188
Voir les 30 alternatives à Python Patterns→

Questions fréquentes

Que fait faif/python-patterns ?

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.

Quelles sont les fonctionnalités principales de faif/python-patterns ?

Les fonctionnalités principales de faif/python-patterns sont : Structural Patterns, Behavioral Design Patterns, Creational Design Patterns, Design Pattern Collections, Proxies, Factory Functions, Python, Adapter Patterns.

Quelles sont les alternatives open-source à faif/python-patterns ?

Les alternatives open-source à faif/python-patterns incluent : dbacinski/design-patterns-in-kotlin — This project is a reference collection of practical examples demonstrating the implementation of common software… youlookwhat/designpattern — This project is a comprehensive library of twenty-three standard software design patterns implemented in Java. It… sohamkamani/javascript-design-patterns-for-humans — This project is a collection of simplified explanations and code implementations for common software design patterns… domnikl/designpatternsphp — DesignPatternsPHP is a reference collection of software architecture patterns implemented in PHP 8. It provides a… designpatternsphp/designpatternsphp — DesignPatternsPHP is a reference collection of sample code implementations for common software design patterns using… kamranahmedse/design-patterns-for-humans — This project is a comprehensive educational resource designed to help developers master object-oriented design and…