solid tasarım prensipleri

Post on 13-Apr-2017

579 Views

Category:

Software

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

TASARIM PRENSİPLERİS O L I D

Koray Peker

Kötü Tasarım

Rigid ( Katı )

Fragile ( Kırılgan )

İmmobile ( Hareketsiz )

Viscous ( Yapışkan )

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.

Neden SOLID ?

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

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

Loosely Coupled

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

Loosely Coupled Highly Cohesion

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

Loosely Coupled Highly Cohesion Context Independent

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

Loosely Coupled Highly Cohesion Context Independent Reusable

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

Loosely Coupled Highly Cohesion Context Independent Reusable Maintainable

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

Loosely Coupled Highly Cohesion Context Independent Reusable Maintainable Easily Testable Code

Single Responsibility

Single Responsibility

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

Single Responsibility

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

Open Closed

Open Closed

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

Bertrand Meyer

Liskov Subtitution

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

Liskov Subtitution

Liskov Subtitution

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();      }     }  

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

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

Interface Segregation

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.

Dependecy Inversion

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.

S O L I D Teşekkürler

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

top related