26
TASARIM PRENSİPLERİ S O L I D Koray Peker

SOLID Tasarım Prensipleri

  • Upload
    dumural

  • View
    577

  • Download
    4

Embed Size (px)

Citation preview

Page 1: SOLID Tasarım Prensipleri

TASARIM PRENSİPLERİS O L I D

Koray Peker

Page 2: SOLID Tasarım Prensipleri

Kötü Tasarım

Rigid ( Katı )

Fragile ( Kırılgan )

İmmobile ( Hareketsiz )

Viscous ( Yapışkan )

Page 3: SOLID Tasarım Prensipleri

SOLID Nedir ?

SOLID , Robert Martin’in sunumu ile ortaya çıkan bir Dependency Management (Bağımlılık Yönetimi) biçiminin , 5 adet ilkesinin baş harflerinden oluşan prensiplerdir.

Page 4: SOLID Tasarım Prensipleri

Neden SOLID ?

Şu şekilde kod yazmamıza yardımcı olur ;

Page 5: SOLID Tasarım Prensipleri

Neden SOLID ?Şu şekilde kod yazmamıza yardımcı olur ;

Loosely Coupled

Page 6: SOLID Tasarım Prensipleri

Neden SOLID ?Şu şekilde kod yazmamıza yardımcı olur ;

Loosely Coupled Highly Cohesion

Page 7: SOLID Tasarım Prensipleri

Neden SOLID ?Şu şekilde kod yazmamıza yardımcı olur ;

Loosely Coupled Highly Cohesion Context Independent

Page 8: SOLID Tasarım Prensipleri

Neden SOLID ?Şu şekilde kod yazmamıza yardımcı olur ;

Loosely Coupled Highly Cohesion Context Independent Reusable

Page 9: SOLID Tasarım Prensipleri

Neden SOLID ?Şu şekilde kod yazmamıza yardımcı olur ;

Loosely Coupled Highly Cohesion Context Independent Reusable Maintainable

Page 10: SOLID Tasarım Prensipleri

Neden SOLID ?Şu şekilde kod yazmamıza yardımcı olur ;

Loosely Coupled Highly Cohesion Context Independent Reusable Maintainable Easily Testable Code

Page 11: SOLID Tasarım Prensipleri

Single Responsibility

Page 12: SOLID Tasarım Prensipleri

Single Responsibility

Sadece tek bir sorumluluğu yerine getirmelidir ve yerine getirdiği sorumluluğu iyi yapmalıdır.

Page 13: SOLID Tasarım Prensipleri

Single Responsibility

“Bırakın herşey kendi görevini yapsın” Koray PEKER

Page 14: SOLID Tasarım Prensipleri

Open Closed

Page 15: SOLID Tasarım Prensipleri

Open Closed

“Programlar geliştirilmeye açık ama değiştirilmeye kapalı olmalıdır.”

Bertrand Meyer

Page 16: SOLID Tasarım Prensipleri

Liskov Subtitution

Page 17: SOLID Tasarım Prensipleri

Liskov Subtitution

“Alt sınıflardan oluşturulan nesneler üst sınıfların nesneleriyle yer değiştirdiklerinde aynı davranışı göstermek zorundadır ”

Barbara Liskov

Page 18: SOLID Tasarım Prensipleri

Liskov Subtitution

Page 19: SOLID Tasarım Prensipleri

Liskov Subtitution

Page 20: SOLID Tasarım Prensipleri

Liskov Subtitutionpublic int odeme()  {      return 0;  }  

Public int odeme() throws PersonelException { throw new PersonelException(‘’Stajyer maasli calisamaz’’);}

List<Personel> personel = getPersonelList();  int total = 0;  for(int i=0; i < personel.size(); i++)  {      if(! (personel.get(i) instanceof StajyerPersonal))      {          total+=personel.get(i).odeme();      }     }  

---------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------

Page 21: SOLID Tasarım Prensipleri

Interface Segregation

Page 22: SOLID Tasarım Prensipleri

Interface Segregation

Birbiriyle ilişkili olmayan birçok metodu ihtiva eden büyük bir interface sınıf yerine, birbiriyle ilişkili cohesive metotların yer aldığı birden fazla interface sınıfı daha makbuldür.

Page 23: SOLID Tasarım Prensipleri

Dependecy Inversion

Page 24: SOLID Tasarım Prensipleri

Dependecy Inversion

Somut sınıflara olan bağımlılıklar soyut sınıflar ve interface sınıflar kullanılarak ortadan kaldırılmalıdır.

Page 25: SOLID Tasarım Prensipleri

S O L I D Teşekkürler

Page 26: SOLID Tasarım Prensipleri

Referanslar

Head First Object Oriented Analysis and Design www.kurumsaljava.com( Özkan Acar ) http://en.wikipedia.org/wiki/Ivar_Jacobson http://www.seyhanbakir.com/Post/Detail/33 http://lostechies.com/derickbailey/2009/02/11/solid-development-

principles-in-motivational-pictures/ SOLID Software development is not a Jenga game by Mark Nijhof