Tek Sorumluluk İlkesi Nedir?

Bilgisayar programlama ve tasarımda, tek sorumluluk ilkesi, bir programdaki herhangi bir sınıfın daha büyük uygulamada yalnızca bir işlevi yerine getirmesi gerektiği görüşünü destekleyen bir kavramdır. Bu fikir kısmen, kapsülleme gibi nesne yönelimli programlama ideallerini desteklemektedir, çünkü bütün bir sınıf tek bir sorumluluk almaya odaklanacak ve dış sınıflara çok az güvenecektir. Aynı zamanda, erken nesne yönelimli programlamanın bazı kavramlarına biraz antitetiktir, çünkü tek bir nesnenin işlevi, nesnenin ele aldığı verilerden ayrıştırılır, yani kombinasyon halinde birçok nesnenin korunması için inşa edilmesi gerekebilir. bazı merkezi veriler. Tek sorumluluk ilkesi, sorumluluk odaklı tasarım olarak bilinen bir tasarım modelinin temelidir.

Tek sorumluluk ilkesinin bir örneği, geleneksel bir telefon ahizesi şeklini alabilir. Bazı tasarım ilkeleri, ahizeyi hem telefon hattından girişi hem de hoparlörden çıkış iletimini işleyen tek bir nesne olarak görür. Tek bir nesnenin yalnızca tek bir sorumluluğa sahip olması gereken tek bir sorumluluk modelinde, ahize, her biri yalnızca telefon hattından giriş almak veya yalnızca verileri göndermek gibi, tek bir işlev gerçekleştiren birkaç ayrı nesneden oluşacaktır. kulaklık.

Tek sorumluluk ilkesinin kullanılmasının mümkün kıldığı avantajlardan biri, çok yüksek bir soyutlama ve modülerlik düzeyidir. Ahize örneğinde, telefon hattından gelen giriş veya sinyalin kullanıcıya çıkış şekli, arayüzleme için aynı sözleşmeye bağlı oldukları sürece komşu sınıfları etkilemeden değiştirilebilir. Ek olarak, belirli bileşenlerin yeniden kullanılabilirliği çok yüksek olabilir, çünkü her bir sınıf tamamen kapsüllenmiştir ve çevreleyen nesnelere, tek bir sorumluluğu yerine odaklanarak çok az güvenir.

Tek sorumluluk ilkesinin yaratabileceği bir komplikasyon, hepsinin aynı veri üzerinde çalışmakta olduğu çok sayıda sınıf ve nesnedir. Bu, fazla miktarda ek yük ve karmaşık bir tasarım süreci anlamına gelebilir. Aynı zamanda büyük bir programın hata ayıklamasını zorlaştırabilir, çünkü programın bir kısmı binlerce küçük sınıf dosyasından oluşabilir.

Tek sorumluluk ilkesi, sorumluluk odaklı bir tasarım aracılığıyla uygulandığında, veriler ve verileri işlemek için kullanılan yöntemler tasarım amacıyla ayrılır. Bu, tasarımda belirli bir özgürlük, enkapsülasyon ve modülerliğe yol açsa da, aynı anda tüm verilerle etkileşime girmeye çalışan bir dizi sınıfı kolaylaştırmak için kullanılması gereken bir takım ara kalıplar ve tasarımlar üretebilir. Öte yandan, bir nesnenin verileri ve hepsini yönetmek için kullanılan yöntemler tek bir çok sorumluluklu nesnede bir araya getirilirse, sistem ölçeği, değişim veya daha karmaşık hale geldikçe kod değiştirmek zorlaşabilir.