Solid nedir, neden solid ilkelerine uymak gerekir, temel olarak solid prensipleri bizler i?in neyi ifade eder sorular?n? cevapl?yoruz.
Daha temiz, g┨zel kodlar? nas?l yazabilece?imizi, uygulamalar?m?z? uzun vadede daha rahat geli?tirmeniz i?in gerekli olan bu y?ntemi iyi kavrayarak uygulamak; sizlere zamandan tasarruf sa?layaca?? gibi, daha h?zl? geli?tirme yapman?za da olanak sa?layacakt?r.
2. K?t┨ Tasar?m?n ?zellikleri
* Esnemezlik(Rigidity)
C Bak?m? zorla?t?r?r.
* K?r?lganl?k (Fragility)
C Bir yerde yap?lan de?i?iklikler
farkl? yerlerde sorun
olu?turabilir.
* Sabitlik (Immobility)
C Ba?ka yerde kullan?m? zordur.
3. SOLID Nedir?
* Nesne y?nelimli programlamaya ait 5 prensibin birlikte ve etkin olarak
kullan?ld??? tasar?m prensibidir.
* Hedef;
C Ba??ml?l?klar? azaltmak.
C S┨rd┨r┨lebilirlik.
C Bak?m? ve geli?tirilmesi kolay olacak, esnek ┨r┨nler olu?turmak.
5. Single Responsibility Principle
* Olu?turulan yap?lar?n(method,
class vb.) tek bir g?revi olmal?d?r,
belli bir i?i yapmal?d?r.
* Bu yap?lar? de?i?tirmek i?in
yaln?zca bir sebebimiz olmal?d?r.
6. Open Closed Principle
* Projeye ait varl?klar?n geli?ime
a??k; fakat de?i?ime kapal?
olmas?d?r.
* Yaz?lan kodlar?n kendisinde
de?i?im ihtiyac? bulunmadan,
eklemeler yap?lmas?.
* Yaz?lacak kodun de?i?im
gerektirmeyecek ?ekilde
yap?land?r?lmas?.
7. Liskov Substitution Principle
* Alt s?n?flardan olu?turulan bir
nesnenin, ┨st s?n?flardan
olu?turulan bir nesne ile yer
de?i?tirmesi halinde ayn? davran??
ve ?zellikleri sergilemesidir.
* T┨retilen s?n?flar, t┨reyen s?n?flar?n
t┨m ?zelliklerini kullanabilmelidir.
* Kullan?lmamas? gereken durumlar
var ise yap?y? ayr??t?rmak gerekir.
8. Interface Segregation Principle
* Neslerin ihtiya? duymad?klar?
metodlar?n interfacelerden
ayr??t?r?lmas?d?r.
* Bir aray┨ze gerekenden fazla
yetenek eklenmemelidir.
* B?yle bir durumda interface
b?l┨nerek kullan?lmal?.
9. Dependency Inversion Principle
* Y┨ksek seviyeli s?n?flar, d┨?┨k
seviyeli s?n?flara ba?l? olmamal?d?r.
* Her ikisi de soyut kavramlara ba?l?
olmal?(Abstract Class veya
Interface)