SOLID Prensipleri

SOLID, 2000’li yılların başında Robert C. Martin tarafından nesne tabanlı programlama için ortaya çıkartılmıştır ve 5 ilkesi bulunmaktadır.

Programcılar yıllar içerisinde sorunları çözmek için tasarım desenleri oluşturdular. Fakat sorunlar çözüldüyse de yeni sorunları da beraberinde getirmişti. Bu sorunlar karşısında çözüm olarak SOLID  ortaya çıkmıştır.

Bu sorunları biraz daha açarsak, geliştirilen yazılımların sonradan eklemelere açık olmaması eklense bile olduğu duruma sadece geçici bir çözüm olabilmesidir. Bu yapılan değişiklikler yazılımızın diğer yerlerinde de değişikliklere veya sorunlara yol açabilmektedir. Yapılan eklemeler başta da belirttiğim gibi sadece geçici bir çözüm olabilmektedir. Değişiklikler yapabiliriz ama yapacağımız bu değişiklikler veya eklemeler sadece bizim o anki günümüzü kurtarmamıza yarayacaktır.

Bunların önüne geçebilmemiz için yazdığımız yazılımı SOLID ilkelerine göre düzenlemeli veya ona göre yazmalıyız.

Nedir bu ilkeler ?

Single Responsibility Principle

Oluşturulan nesnelerin ya da fonksiyonların tek bir görevi olmalıdır. Sadece kendisine verilen o görevi yapmalı ve ondan sorumlu olmalıdır.

Open-Closed Principle

Oluşturulan nesnelerimiz ya da fonksiyonlarımız geliştirmeye açık ancak değişime kapalı olmalıdır. Yazılımımızda (projemizde) önceden yazılan kodları değiştirerek değil, var olan kodlara yeni eklemeler yaparak sorunları çözmeliyiz.

Liskov' s Substitution Principle

Türeyen sınıflar base sınıfın bütün özelliklerini kullanmak zorundadır. Eğer ki kullanılmıyorsa gerekli olan sınıfa ayrı bir interface kalıtım etmeliyiz. Eğer bunu yapmasak kullanmadığımız özellik için gereksiz kod yığınları oluşur.

Alt sınıflardan oluşan nesnelerin üst sınıfların nesneleriyle yer değiştirdiklerinde aynı davranışı göstermelidir.

Interface Segregation Principle

Sınıflarımızın(nesnelerimizin) kullanmadıkları veya ihtiyaç duymadıkları özelliklerin mümkün mertebe interfacelere ayrıştırılmasıdır.

Dependency Inversion Principle

Yüksek seviye modüler , base sınıflar, metotlar alt seviyeli sınıflara bağlımlı olmamalıdır. Alt sınıflarda yapılan değişiklik üst sınıf (base sınıfı) etkilememelidir. Her ikisi de abstract ya da interface  kavramlarına bağlı olmalıdır.

Bundan sonra kodlarımızı SOLID prensibine uygun bir şekilde yazdığımızda kodlarımız hem okunabilirlik hem de geliştirebilir açısından çok önde olacaktır. İleride ortaya çıkabilecek sorunları da SOLID prensipleri sayesinde aza indirgemiş oluyoruz.