SOLID bincike gida biyar ne don gina tsarin OOP da za a iya tunkarar, da kuma na flexible. Kowanninsu yana magani ga dalilin gida na karfin, m jajaye kodaci.
| Harafin | Ƙa'ida | Hanyar fassara ta daya |
|---|
| S | Alhakin Daya Kawai | Sanda ya kamata samun hanya daya kawai ta canza |
| O | Bude/Rufe | Bude don fadada, rufe don canzawa |
| L | Liskov na Sauyi | Nau'i mabambaɗi dole su iya amfani inda aka samu tushen nau'in |
| I | Rabuwa na Sambari | Yawancin ƙananan sambari suna da kyau fiye da daya mai kiba |
| D | Juyawa na Dogaro | Dogara ga absutra, ba ga nau'i na concrete |
# 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
OrderService ba ya dogara akan bakin jiya a takaice — canja ta SMS ko aguye na gwaji ba tare da tadowa a gida (D). Ƙara sabon nau'i na matakin baida ba ya buƙaci canja a OrderService (O).
SOLID ja ita ce jagowa, ba dokar ba. Ya wuce ta amfani — sambari ɗaya ga kowane ajii, juyawa a ko'ina — samar da "miski na abstrakshan" wanda ya fi wahala a bi fiye da matsalar da ya warware ta.
SOLID ana bayar da harshe na diganostic na gida-gida: masu duba ana iya suna gida me ya sa ajii ya fi wahala a canza ("wannan ya keta SRP") da juna ba tare da gardamar don dadi ba.
Ta amfani da juji, ƙa'ido sun rage tasiri na gida-gida — canja ta jiyo ta gida, sababbin fasals suna fadada saida sai sake rubuta, da kuma gwaje ana iya sauya aiki na gida domin dogaro na ainihi.
Ɗakin karatu na tambayoyin hira na IT tare da amsoshi cikakke — daga Junior zuwa Senior.
Ba da Gudummawa