Ein Python -Paket mit gemeinsamen Software -Design -Mustern.
| bauen | |
|---|---|
| Paket | |
| Codequalität |
In diesem Repository hostet der Open-Source-Code des Softwaremusterprojekts. Die Hauptkomponente des Projekts ist das auf PYPI unter https://pypi.org/Project/Software-Patterns gehostete Software-Patterns Python-Paket. Es enthält auch Online-Dokumentationsseiten, die auf https://software-passterns.readthedocs.io.
Was sind Software -Designmuster?
Software -Ingenieure verwenden verschiedene Designs und Lösungen, um ihre Probleme zu lösen. Die aufstrebenden (Software-) Muster unter den Codelösungen, die auf Reoccing -Probleme abzielen, wurden untersucht und formalisiert, wie sie verwendet werden, welches Problem sie lösen und warum sie ein passender Kandidat sind, um sie zu lösen. Diese Code -Designs, die häufig in verschiedenen Codebasen enthalten sind, werden als Software -Designmuster bezeichnet.
Das Software-Musterpaket enthält eine Reihe von Python-Klassen, die eine konkurrierende Verwendung gemeinsamer Software-Designmuster ermöglichen.
Entwurfsmuster implementiert:
Installieren Sie vom PYPI -Server:
PIP Installieren Sie Software-Muster
Beispielcode zur Verwendung des Fabrikmusters in Form einer (Sub-) Klassenregistrierung:
from software_patterns import SubclassRegistry
class MyClassRegistry ( metaclass = SubclassRegistry ):
pass
@ MyClassRegistry . register_as_subclass ( 'a' )
class ClassA :
def __init__ ( self , number ):
self . attr = number
@ MyClassRegistry . register_as_subclass ( 'b' )
class ClassB :
def __init__ ( self , number ):
self . attr = number - 1
assert MyClassRegistry . subclasses == { 'a' : ClassA , 'b' : ClassB }
instance_a = MyClassRegistry . create ( 'a' , 10 )
assert type ( instance_a ) == ClassA
assert instance_a . attr == 10
assert isinstance ( instance_a , ClassA )
instance_b = MyClassRegistry . create ( 'b' , 10 )
assert type ( instance_b ) == ClassB
assert instance_b . attr == 9
assert isinstance ( instance_b , ClassB )