SOLID Prensipleri: Temel Yöntemler ve Uygulamalar

Konuyu başlatankyr karacaMod·
Yanıt
0
Görüntülenme
0
Oy
0
Son yanıt
Henüz yok
0 görüntülenme

SOLID Prensipleri: Temel Yöntemler ve Uygulamalar

Clean Code, yazılım geliştirme alanında önemli bir kavramdır. Bu makalede, SOLID prensiplerini detaylı bir şekilde inceleyeceğiz. SOLID, yazılım mühendisliği alanında genel kabul gören bir yöntemdir ve yazılım geliştiricilerin kodlarını daha temiz, anlamlı ve sürdürülebilir hale getirmelerine yardımcı olur.

S - Single Responsibility Principı (Bir Görevli İlke)

Single Responsibility Principı, bir sınıfın yalnızca bir görevi yerine getirmesi gerektiğini öne sürer. Bu prensip, bir sınıfın birden fazla sorumluluğu olması halinde, sınıfın karmaşıklığı artacak ve mantıkla alakasız kodlar ekilerek sınıfın anlambilimi düşecektir. Bir sınıfa yalnızca bir görev atanmalıdır ve bu görevin dışına çıkılmamalıdır.

Örnek olarak, bir kullanıcı sınıfı oluşturuyorsak, bu sınıf yalnızca kullanıcı işlemlerini gerçekleştirmelidir. Kullanıcı işlemleri arasında kullanıcıların verilerini depolama, kullanıcıların kimlik doğrulama işlemlerini gerçekleştirmesi gibi görevler bulunmalıdır. Ancak, kullanıcı sınıfına daha fazla görev eklenmemelidir, örneğin, kullanıcı sınıfına veri geçirmesi, veri silmesi gibi görevler eklenmemelidir.

O - Open/Closed Principı (Açık/Kapalı İlke)

Open/Closed Principı, bir sınıfın yeni davranışları ekleme yeteneğine sahip olmasını, ancak eski davranışlarını değiştirme yeteneğinden yoksun olmasını gerektirir. Bu prensip, bir sınıfın yeni görevleri eklemesine, ancak eski görevlerini değiştirmesine izin vermez. Bu şekilde, bir sınıfın anlambilimi artar ve kod daha temiz hale gelir.

Örnek olarak, bir ödeme sınıfı oluşturuyorsak, bu sınıf yalnızca ödeme işlemlerini gerçekleştirmelidir. Ancak, yeni ödeme yöntemleri eklenebilmelidir. Örneğin, kredi kartı ödeme yöntemini ekleyebiliriz ancak, ödeme sınıfına eski görevlerini değiştirmiyoruz. Ödeme sınıfı yeni görevleri eklemeye açık, ancak eski görevlerini değiştirmeye kapalıdır.

L - Liskov Substitution Principı (Liskov Değiştirme İlkesi)

Liskov Substitution Principı, bir sınıfın alt sınıfı ile değiştirilebilmelidir. Bu prensip, bir sınıfın alt sınıfı ile değiştirilememesi halinde, bu sınıfa alt sınıflar eklenmemelidir. Bu şekilde, kod daha temiz ve daha anlaşılır hale gelir.

Örnek olarak, bir araç sınıfı oluşturuyorsak, bu sınıfın bir arabası ve bir otobüsü temsil eden alt sınıfları olmalıdır. Bu alt sınıflar, araç sınıfının tüm görevlerini gerçekleştirmelidir ve araç sınıfının yerine geçebilmelidir.

I - Interface Segregation Principı (Arayüz Bölünmesi İlkesi)

Interface Segregation Principı, bir arayüzün çok fazla görevi yerine getirmemesini gerektirir. Bu prensip, bir arayüzün birden fazla görevi yerine getirmesi halinde, arayüzün karmaşıklığı artacak ve mantıkla alakasız kodlar ekilerek arayüzün anlambilimi düşecektir. Bir arayüzün yalnızca bir görevi yerine getirmesi veya birden fazla görevi yerine getirmesi, ancak küçük ve anlamlı görevler olması gerektirir.

Örnek olarak, bir ödeme arayüzü oluşturuyorsak, bu arayüz yalnızca ödeme işlemlerini gerçekleştirmelidir. Ancak, ödeme işlemlerinden oluşan küçük görevler olabilir. Örneğin, kredi kartı ödeme yöntemi, banka kartı ödeme yöntemi gibi.

D - Dependency Inversion Principı (Bağımısızlık İ inverse İlkesi)

Dependency Inversion Principı, bir sınıfın diğer sınıflarla bağımlılığını azaltmasını gerektirir. Bu prensip, bir sınıfın diğer sınıflara bağımlılığını azaltması halinde, kod daha temiz ve daha anlaşılır hale gelir.

Örnek olarak, bir kullanıcı sınıfı oluşturuyorsak, bu sınıfın bir veri depolama sınıfına bağımlılığını azaltmamız gerekir. Kullanıcı sınıfı, veri depolama sınıfından bağımsız olmalıdır ve veri depolama sınıfına bağımlılığını azaltmak için, veri depolama sınıfının bir arayüzünü kullanabiliriz.

Özümlemede Karar

SOLID prensipleri, yazılım geliştirme alanında önemli bir kavramdır. Bu prensipler, yazılım mühendislerinin kodlarını daha temiz, anlamlı ve sürdürülebilir hale getirmelerine yardımcı olur. Bir sınıfın sadece bir görevi yerine getirmesi, bir sınıfın yeni davranışları ekleme yeteneğine sahip olmasını, ancak eski davranışlarını değiştirme yeteneğinden yoksun olmasını, bir sınıfın alt sınıfı ile değiştirilebilmeli, bir arayüzün çok fazla görevi yerine getirmemesi ve bir sınıfın diğer sınıflarla bağımlılığını azaltması gerektirir. Bu prensipler, yazılım geliştiricilerin kodlarını daha temiz ve daha anlaşılır hale getirmelerine yardımcı olur.

0 yanıt0

Konuyu Yanıtla

Markdown destekler · Alıntı, kod, liste kullanabilirsiniz

Konuyu yanıtlamak için giriş yapmalısınız.

Bu konuda yer alanlar

Bu gönderinin yazarı ve yorum yazan üyeler (yalnızca bu konu).