Um pacote Python com padrões de design de software comuns.
| construir | |
|---|---|
| pacote | |
| qualidade de código |
Este repositório hospeda o código de código aberto do projeto Padrões de Software. O componente principal do projeto é o pacote Python-Patterns de software hospedado no Pypi em https://pypi.org/project/software-patterns, também apresenta páginas de documentação on-line hospedadas em https://soft--patterns.retThedocs.io/ e um hitdflow público em Circleci.
O que são padrões de design de software?
Os engenheiros de software estão empregando vários projetos e soluções para resolver seus problemas. Os padrões emergentes (de software), entre as soluções de código, direcionando os problemas recorrentes foram estudados e formalizados em termos de como eles são usados, que problema eles resolvem e por que eles são um candidato adequado para resolvê -lo. Esses designs de código, que são freqüentemente encontrados em várias bases de código, são conhecidos como padrões de design de software.
O pacote de padrões de software expõe um conjunto de classes Python que permitem o uso convencional de padrões comuns de design de software.
Padrões de design implementados:
Instale no servidor Pypi:
PIP Instale padrão de software
Exemplo Código para usar o padrão de fábrica na forma de um registro (sub) 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 )