IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   JavaScript (https://www.ircforumlari.net/javascript/)
-   -   Loose Coupling, High Cohesion kavramı! (https://www.ircforumlari.net/javascript/532016-loose-coupling-high-cohesion-kavrami.html)

YazılımMimarı 23 Mayıs 2013 09:59

Loose Coupling, High Cohesion kavramı!
 
Loose Coupling, High Cohesion!

OOP'de oldukça önemli iki kavramdır. Coupling nesnelerin birbiri ile olan bağımlılıklarını temsil eder, Cohesion ise bir sınıf üzerine yüklenen sorumluluk olarak nitelendirilebilir.

Nesnesel programlamada sınıflar arası ilişkiler olmak zorundadır fakat bir programcı bu ilişkiler(bağımlılıkları) yönetirken esnek bir bağ kurmak zorundadır. Eğer nesneler arasında birden fazla bağımlılıklar oluşursa hem nesneleri yönetmek zor olur hemde yazılımın bakımı yapılırken herhangi bir değişiklikte bağımlı sınıfların bakımınıda yapmak zorunda kalırsınız.

En temel mantık burada şudur. Cohesion'ı yüksek tutmak. Bu kavramın türkçe karşılığı şudur. Her sınıf kendine özgü işi yapsın! Üzerine varolan context'inden fazla yük bindirmeyiniz. Mesela; Mail sınıfımız olsun ve mailGondermek metodu içinde olsun. Bu sınıfımızın implementasyonunu arayüz sınıfı üzerinden yaptıralım.

Böyle bir yapıda, sizin Kullanıcı, Kampanya, ÜrünBilgi vs. sınıflarınız Mail sınıfına ihtiyaç duyduklarında arayüz sınıfı üzerinde gidip, mailGondermek metodunu çağırırlar. Bütün sınıflar kendi için ayrı ayrı iş yapsalarda, Mail sınıfı kendi içinde tümleşik şekilde sadece tek bir iş yükünü koşturmaktadır. Bu da Mail sınıfının "cohesion" yani sınıf içi uyumunu yüksek olduğu anlamına gelir. (Örnek : Kullanıcı sınıfı, kullanıc ıkayıt olduğunda kayıtlı kullanıcıya kayıt maili göndermesi, Kampanya sınıfını oluşan kampanyaları kullanıcılara iletmesi, İndirim olan ürün bilgilerini ÜrünBilgi sınıfımızın kullanıcılara bildirmesi gibi..)

Aklıma geldikçe karalarım :) Bir çok sitede yazdıklarım paylaşılıyor. Bu yazıyı sadece IF'te yazdım mümkün mertebe kaynak gösterip paylaşalım.

İyi çalışmalar.


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 08:51.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk