René's URL Explorer Experiment


Title: Python Design Patterns

direct link

Domain: python-patterns.guide

Nonetext/html; charset=utf-8

Links:

https://python-patterns.guide/#python-design-patterns
websitehttps://rhodesmill.org/brandon/
Twitterhttps://twitter.com/brandon_rhodes
Python programming languagehttps://www.python.org/
Python conference talkshttp://rhodesmill.org/brandon/talks/
project repository on GitHubhttps://github.com/brandon-rhodes/python-patterns
https://python-patterns.guide/#gang-of-four-principles
The Composition Over Inheritance Principlehttps://python-patterns.guide/gang-of-four/composition-over-inheritance/
Problem: the subclass explosionhttps://python-patterns.guide/gang-of-four/composition-over-inheritance/#problem-the-subclass-explosion
Solution #1: The Adapter Patternhttps://python-patterns.guide/gang-of-four/composition-over-inheritance/#solution-1-the-adapter-pattern
Solution #2: The Bridge Patternhttps://python-patterns.guide/gang-of-four/composition-over-inheritance/#solution-2-the-bridge-pattern
Solution #3: The Decorator Patternhttps://python-patterns.guide/gang-of-four/composition-over-inheritance/#solution-3-the-decorator-pattern
Solution #4: Beyond the Gang of Four patternshttps://python-patterns.guide/gang-of-four/composition-over-inheritance/#solution-4-beyond-the-gang-of-four-patterns
Dodge: “if” statementshttps://python-patterns.guide/gang-of-four/composition-over-inheritance/#dodge-if-statements
Dodge: Multiple Inheritancehttps://python-patterns.guide/gang-of-four/composition-over-inheritance/#dodge-multiple-inheritance
Dodge: Mixinshttps://python-patterns.guide/gang-of-four/composition-over-inheritance/#dodge-mixins
Dodge: Building classes dynamicallyhttps://python-patterns.guide/gang-of-four/composition-over-inheritance/#dodge-building-classes-dynamically
https://python-patterns.guide/#python-specific-patterns
The Global Object Patternhttps://python-patterns.guide/python/module-globals/
The Constant Patternhttps://python-patterns.guide/python/module-globals/#the-constant-pattern
Import-time computationhttps://python-patterns.guide/python/module-globals/#import-time-computation
Dunder Constantshttps://python-patterns.guide/python/module-globals/#dunder-constants
The Global Object Patternhttps://python-patterns.guide/python/module-globals/#id1
Global Objects that are mutablehttps://python-patterns.guide/python/module-globals/#global-objects-that-are-mutable
Import-time I/Ohttps://python-patterns.guide/python/module-globals/#import-time-i-o
The Prebound Method Patternhttps://python-patterns.guide/python/prebound-methods/
Alternativeshttps://python-patterns.guide/python/prebound-methods/#alternatives
The patternhttps://python-patterns.guide/python/prebound-methods/#the-pattern
The Sentinel Object Patternhttps://python-patterns.guide/python/sentinel-object/
Sentinel Valuehttps://python-patterns.guide/python/sentinel-object/#sentinel-value
The Null Pointer Patternhttps://python-patterns.guide/python/sentinel-object/#the-null-pointer-pattern
The Null Object Patternhttps://python-patterns.guide/python/sentinel-object/#the-null-object-pattern
Sentinel Objectshttps://python-patterns.guide/python/sentinel-object/#sentinel-objects
https://python-patterns.guide/#gang-of-four-creational-patterns
The Abstract Factory Patternhttps://python-patterns.guide/gang-of-four/abstract-factory/
The Pythonic approach: callable factorieshttps://python-patterns.guide/gang-of-four/abstract-factory/#the-pythonic-approach-callable-factories
Restriction: outlaw passing callableshttps://python-patterns.guide/gang-of-four/abstract-factory/#restriction-outlaw-passing-callables
Restriction: outlaw passing classeshttps://python-patterns.guide/gang-of-four/abstract-factory/#restriction-outlaw-passing-classes
Generalizing: the complete Abstract Factoryhttps://python-patterns.guide/gang-of-four/abstract-factory/#generalizing-the-complete-abstract-factory
The Builder Patternhttps://python-patterns.guide/gang-of-four/builder/
The Builder as conveniencehttps://python-patterns.guide/gang-of-four/builder/#the-builder-as-convenience
Nuancehttps://python-patterns.guide/gang-of-four/builder/#nuance
Dueling buildershttps://python-patterns.guide/gang-of-four/builder/#dueling-builders
A degenerate case: simulating optional argumentshttps://python-patterns.guide/gang-of-four/builder/#a-degenerate-case-simulating-optional-arguments
The Factory Method Patternhttps://python-patterns.guide/gang-of-four/factory-method/
Dodge: use Dependency Injectionhttps://python-patterns.guide/gang-of-four/factory-method/#dodge-use-dependency-injection
Instead: use a Class Attribute Factoryhttps://python-patterns.guide/gang-of-four/factory-method/#instead-use-a-class-attribute-factory
Instead: use an Instance Attribute Factoryhttps://python-patterns.guide/gang-of-four/factory-method/#instead-use-an-instance-attribute-factory
Instance attributes override class attributeshttps://python-patterns.guide/gang-of-four/factory-method/#instance-attributes-override-class-attributes
Any callables acceptedhttps://python-patterns.guide/gang-of-four/factory-method/#any-callables-accepted
Implementinghttps://python-patterns.guide/gang-of-four/factory-method/#implementing
The Prototype Patternhttps://python-patterns.guide/gang-of-four/prototype/
The problemhttps://python-patterns.guide/gang-of-four/prototype/#the-problem
Pythonic solutionshttps://python-patterns.guide/gang-of-four/prototype/#pythonic-solutions
Implementinghttps://python-patterns.guide/gang-of-four/prototype/#implementing
The Singleton Patternhttps://python-patterns.guide/gang-of-four/singleton/
Disambiguationhttps://python-patterns.guide/gang-of-four/singleton/#disambiguation
The Gang of Four’s implementationhttps://python-patterns.guide/gang-of-four/singleton/#the-gang-of-fours-implementation
A more Pythonic implementationhttps://python-patterns.guide/gang-of-four/singleton/#a-more-pythonic-implementation
Verdicthttps://python-patterns.guide/gang-of-four/singleton/#verdict
https://python-patterns.guide/#gang-of-four-structural-patterns
The Composite Patternhttps://python-patterns.guide/gang-of-four/composite/
Example: the UNIX file systemhttps://python-patterns.guide/gang-of-four/composite/#example-the-unix-file-system
On hierarchieshttps://python-patterns.guide/gang-of-four/composite/#on-hierarchies
Example: GUI programming with Tkinterhttps://python-patterns.guide/gang-of-four/composite/#example-gui-programming-with-tkinter
Implementation: to inherit, or not?https://python-patterns.guide/gang-of-four/composite/#implementation-to-inherit-or-not
The Decorator Patternhttps://python-patterns.guide/gang-of-four/decorator-pattern/
Definitionhttps://python-patterns.guide/gang-of-four/decorator-pattern/#definition
Implementing: Static wrapperhttps://python-patterns.guide/gang-of-four/decorator-pattern/#implementing-static-wrapper
Implementing: Tactical wrapperhttps://python-patterns.guide/gang-of-four/decorator-pattern/#implementing-tactical-wrapper
Implementing: Dynamic wrapperhttps://python-patterns.guide/gang-of-four/decorator-pattern/#implementing-dynamic-wrapper
Caveat: Wrapping doesn’t actually workhttps://python-patterns.guide/gang-of-four/decorator-pattern/#caveat-wrapping-doesnt-actually-work
Hack: Monkey-patch each objecthttps://python-patterns.guide/gang-of-four/decorator-pattern/#hack-monkey-patch-each-object
Hack: Monkey-patch the classhttps://python-patterns.guide/gang-of-four/decorator-pattern/#hack-monkey-patch-the-class
Further Readinghttps://python-patterns.guide/gang-of-four/decorator-pattern/#further-reading
The Flyweight Patternhttps://python-patterns.guide/gang-of-four/flyweight/
Factory or Constructorhttps://python-patterns.guide/gang-of-four/flyweight/#factory-or-constructor
Implementinghttps://python-patterns.guide/gang-of-four/flyweight/#implementing
https://python-patterns.guide/#gang-of-four-behavioral-patterns
The Iterator Patternhttps://python-patterns.guide/gang-of-four/iterator/
Iterating with the “for” loophttps://python-patterns.guide/gang-of-four/iterator/#iterating-with-the-for-loop
The pattern: the iterable and its iteratorhttps://python-patterns.guide/gang-of-four/iterator/#the-pattern-the-iterable-and-its-iterator
A twist: objects which are their own iteratorhttps://python-patterns.guide/gang-of-four/iterator/#a-twist-objects-which-are-their-own-iterator
Implementing an Iterable and Iteratorhttps://python-patterns.guide/gang-of-four/iterator/#implementing-an-iterable-and-iterator
Python’s extra level of indirectionhttps://python-patterns.guide/gang-of-four/iterator/#pythons-extra-level-of-indirection
https://python-patterns.guide/#bibliography
Gang of Four bookhttps://python-patterns.guide/gang-of-four/
Refactoring by Martin Fowlerhttps://python-patterns.guide/fowler-refactoring/
Brandon Rhodeshttp://rhodesmill.org/brandon/

Viewport: width=device-width, initial-scale=1.0


URLs of crawlers that visited me.