software patterns
v2.0.0
帶有常見軟件設計模式的Python軟件包。
| 建造 | |
|---|---|
| 包裹 | |
| 代碼質量 |
該存儲庫託管軟件模式項目的開源代碼。該項目的主要組件是https://pypi.org/project/software-patterns託管的軟件paterns python軟件包,它還具有託管在https://software-patrens.readthedocs.io/上的在線文檔頁面。
什麼是軟件設計模式?
軟件工程師正在採用各種設計和解決方案來解決問題。在代碼解決方案中,已經對重新解決問題的新興(軟件)模式進行了研究,並正式化了它們的使用方式,他們解決了什麼問題以及為什麼它們是解決問題的合適候選人。這些代碼設計經常在各個代碼庫中找到,稱為軟件設計模式。
軟件模式軟件包公開了一組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 )