Paket Python dengan pola desain perangkat lunak umum.
| membangun | |
|---|---|
| kemasan | |
| Kualitas Kode |
Repositori ini meng-host kode sumber terbuka dari proyek Pola Perangkat Lunak. Komponen utama proyek adalah paket perangkat lunak-pola Python yang di-host di PYPI di https://pypi.org/project/software-patterns, ini juga menampilkan halaman dokumentasi online yang di-host di https://software-patterns.readthedocs.io/ dan ci workflow public hostleci pada sirklek.
Apa itu pola desain perangkat lunak?
Insinyur perangkat lunak menggunakan berbagai desain dan solusi untuk menyelesaikan masalah mereka. Pola yang muncul (perangkat lunak), di antara solusi kode, menargetkan masalah reakel telah dipelajari dan diformalkan dalam hal bagaimana mereka digunakan, masalah apa yang mereka selesaikan dan mengapa mereka adalah kandidat yang cocok untuk menyelesaikannya. Desain kode ini, yang sering ditemukan di berbagai basis kode, dikenal sebagai pola desain perangkat lunak.
Paket pola perangkat lunak memaparkan satu set kelas Python yang memungkinkan penggunaan konvient pola desain perangkat lunak umum.
Pola desain yang diimplementasikan:
Instal dari server PYPI:
PIP menginstal pola perangkat lunak
Contoh kode untuk menggunakan pola pabrik dalam bentuk registri kelas (sub):
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 )