Unity C# (S)OLID Single Responsibility Principle — Tek Sorumluluk Prensibi

Süleyman Ariş
2 min readMar 23, 2024

--

Başarılı bir Unity C# kodu yazarken, SOLID prensipleri sık sık rehberimiz olur. Bu prensipler, kodun okunabilirliğini, bakımını ve genel kalitesini artırmaya yardımcı olur. Bu yazıda, SOLID prensiplerinin ilki olan “Tek Sorumluluk Prensibi”ni (Single Responsibility Principle — SRP) inceleyeceğiz ve Unity C# uygulamalarında nasıl uygulanabileceğini öğreneceğiz.

Günlük Hayattan Örnek?

Diyelim ki bir mutfakta çalışan bir aşçıyı ele alalım. Aşçının görevleri arasında yemek pişirmek, malzemeleri hazırlamak, temizlik yapmak, yemek tariflerini planlamak ve sipariş vermek gibi çeşitli sorumluluklar vardır. Eğer bu aşçı, yemek pişirme, malzeme hazırlama ve temizlik yapma gibi farklı görevleri tek bir kişiye yüklerseniz, o kişi hem zamanını etkin bir şekilde kullanamayacak hem de bu görevleri yerine getirirken performansı düşecektir. SOLID prensiplerine göre, bu durumda her bir görev veya sorumluluk farklı bir sınıfa veya kişiye atanmalıdır. Örneğin:

  1. Yemek pişirme işi, mutfakta çalışan aşçı tarafından yapılabilir.
  2. Malzeme hazırlama işi, bir yardımcı tarafından yapılabilir.
  3. Temizlik işi, ayrı bir temizlik personeli tarafından yapılabilir.

Bu şekilde, her bir kişi veya sınıf, yalnızca tek bir sorumluluğa odaklanarak daha etkin bir şekilde çalışabilir ve birbirlerinin işine müdahale etmezler. Bu da işlerin daha düzenli ve verimli bir şekilde yürütülmesine olanak sağlar.

Tek Sorumluluk Prensibi Nedir?

SRP, bir sınıfın yalnızca bir tek sorumluluğu olması gerektiğini belirtir. Yani bir sınıf, yalnızca bir amaç için değişiklik yapılması gereken tek bir neden veya işlev içermelidir. Bu, kodun okunabilirliğini artırır, bakımını kolaylaştırır ve kodun tekrar kullanılabilirliğini sağlar.

Örnek Senaryo:

Bir Unity oyununda, bir karakterin hareketini kontrol eden bir script düşünelim. Bu script, karakterin Mouse ile sağa ve sola hareketini sağlayan bir kod içeriyor. Ancak, aynı script aynı zamanda karakterin sağlığını kontrol edebiliyor. Bu, SRP’ye uymayan bir örnektir çünkü script birden fazla sorumluluğu üstlenmektedir. Üşenmeyin ve ayrı bir script oluşturun. Bu script, zaten karakterin üzerinde olduğundan alakasız bir yere kod eklemeyin ve unutmayın bazı çiçekler bazı topraklarda yetişmez :).

Aşağıda SRP’ye uymayan kod bulunmaktadır :

Şimdi ise SPR’ye uyan kod :

Sonuç:

Single Responsibility Principle, oyununuzu daha güzel yapmayacak ancak kodlarınızı daha okunabilir, bakımı daha kolay ve genel olarak daha sağlam hale getirmenize yardımcı olabilir. Her bir sınıfın yalnızca bir sorumluluğa sahip olmasını sağlamak, kod tabanınızın uzun vadeli sağlamlığını artırabilir. Bu prensibi anlamak ve doğru şekilde uygulamak, geliştirme sürecinizde büyük faydalar sağlayabilir.

--

--