Un package Python avec des modèles de conception de logiciels communs.
| construire | |
|---|---|
| emballer | |
| qualité du code |
Ce référentiel héberge le code open source du projet de modèles logiciels. Le composant principal du projet est le package Python de logiciel hébergé sur PYPI sur https://pypi.org/project/Software-Patterns Il propose également des pages de documentation en ligne hébergées sur https://software-patterns.readthedocs.io/ et un public CI a hébergé sur Cirleci.
Que sont les modèles de conception de logiciels?
Les ingénieurs logiciels utilisent divers conceptions et solutions pour résoudre leurs problèmes. Les modèles émergents (logiciels), parmi les solutions de code, les problèmes de réapparition ont été étudiés et formalisés en termes de façon dont ils sont utilisés, quel problème ils résolvent et pourquoi ils sont un candidat en forme pour le résoudre. Ces conceptions de code, qui se trouvent fréquemment dans diverses bases de code, sont appelées modèles de conception de logiciels.
Le package de logiciels expose un ensemble de classes Python qui permettent une utilisation convient des modèles de conception de logiciels communs.
Motifs de conception mis en œuvre:
Installer à partir du serveur PYPI:
PIP installe des software-software
Exemple de code pour utiliser le modèle d'usine sous la forme d'un (sous) Registre de classe:
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 )