Пакет Python с общими шаблонами проектирования программного обеспечения.
| строить | |
|---|---|
| упаковка | |
| качество кода |
Этот репозиторий размещает код с открытым исходным кодом проекта программного обеспечения. Основным компонентом проекта является пакет Python Software-Patterns, размещенный на PYPI по адресу https://pypi.org/project/software-patterns. Он также включает в себя страницы документации в Интернете, размещенные по адресу https://software-patterns.readthedocs.io/ и публичный рабочий процесс, размещенный на Circleci.
Что такое шаблоны проектирования программного обеспечения?
Инженеры -программисты используют различные проекты и решения для решения своих проблем. Появляющиеся (программные) шаблоны, среди решений кода, нацеливание на переоценки проблем были изучены и формализованы с точки зрения того, как они используются, какую проблему они решают и почему они являются подходящим кандидатом для решения. Эти конструкции кода, которые часто встречаются в различных кодовых базах, известны как шаблоны проектирования программного обеспечения.
Пакет программного обеспечения раскрывает набор классов Python, которые позволяют использовать консервативное использование общих шаблонов проектирования программного обеспечения.
Реализованные шаблоны дизайна:
Установите с сервера PYPI:
PIP установить программные паттерны
Пример кода для использования заводской шаблона в форме (суб) реестра классов:
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 )