SOLID is cúig phrionsabal dearadh chun córais OOP inúsáidte agus fúarchingeartha a thógáil. Buaileann gach ceann le fobhríonna coitianta ar chóid dhocht agus bhrisc.
SOLID is cúig phrionsabal dearadh chun córais OOP inúsáidte agus fúarchingeartha a thógáil. Buaileann gach ceann le fobhríonna coitianta ar chóid dhocht agus bhrisc.
| Litir | Prionsabal | Brí ar líne amháin |
|---|
| S | Freagracht Aonair | Ba cheart go mbeadh cúis amháin chun athraithe ar rang |
| O | Oscailte/Dúnta | Oscailte do shíneadh, dúnta go dtí méadrú |
| L | Ionadaíocht Liskov | Caithfidh foscineálacha a bheith inúsáidte áit ar bith a bhíonn an bonn-chineál |
| I | Scaipeadh Comhéadain | Is fearr go leor comhéadain bheaga ná ceann ramhar |
| D | Inbhéartú Spleáchais | Bheith ag brath ar astarraingtí, nach ar ranganna nithiúla |
# Dependency Inversion: high-level code depends on an abstraction
class Notifier: # abstraction
def send(self, msg): ...
class EmailNotifier(Notifier):
def send(self, msg): print("email:", msg)
class OrderService:
def __init__(self, notifier: Notifier): # injected abstraction
self.notifier = notifier # not "new EmailNotifier()"
def place(self):
self.notifier.send("order placed") # works with ANY Notifier
Ní bhraitheann OrderService ar ríomhphost go sonrach — cuir SMS nó dúbláil tástála in ionad a bharúil gan é a athrú (D). Ní dhéanann cineál nuálóir a chur leis aon athrú ar OrderService (O).
Is treoir a bhíonn i SOLID, ní dlí. Á bharrúil — comhéadan amháin in aghaidh an ghair, indirection i ngach áit — is é sin atáirge a fhóirceann is deacra a leanúint ná an fhadhb a raibh sé réitithe aici.
Tugann SOLID teanga dhiagnochtach roinnte: is féidir le réiteorí a ainmniú cén fáth go bhfuil rang deacair a athrú (" seo a shárú ar SRP") in áit a bheith ag argóint go bhlas.
A chur i bhfeidhm le breis tuisceana, laghdaíonn na prionsabail éifeachtaí foluainte — fanann athruithe áitiúil, síneann gné nua in ionad athscríobh, agus is féidir le tástálacha bréige a chur in ionad fíorfhreagróirí.
Leabharlann de cheisteanna agallaimh TF le freagraí mionsonraithe — ó Shóisearach go Sinsearach.
Síntiús