S.a. Arkadaşlar,
Bugünkü yazımızda coupling ve cohesion kavramlarından bahsedeceğiz kısaca. Bu iki kavramı kullanmasak ne olur diye düşünebilirsiniz. Hatta kullanmadan kod da yazabilirsiniz fakat bir değişiklik yapmak istediğinizde beklemediğiniz hatalar alabilirsiniz veya sizden sonra gelen bir kişi sizin yazdığın kodlarda çok fazla zorlanabilir. Bu nedenle bu yöntemleri kullanmakta faydalı olduğunu düşünüyorum. Şimdi gelelim bu kavramaların ne olduğuna.
Bugünkü yazımızda coupling ve cohesion kavramlarından bahsedeceğiz kısaca. Bu iki kavramı kullanmasak ne olur diye düşünebilirsiniz. Hatta kullanmadan kod da yazabilirsiniz fakat bir değişiklik yapmak istediğinizde beklemediğiniz hatalar alabilirsiniz veya sizden sonra gelen bir kişi sizin yazdığın kodlarda çok fazla zorlanabilir. Bu nedenle bu yöntemleri kullanmakta faydalı olduğunu düşünüyorum. Şimdi gelelim bu kavramaların ne olduğuna.
Coupling:
Bağlantı/bağlanma anlamına gelen coupling sınıfların birbiriyle olan
ilişkisidir. Yani her bir sınıf diğer sınıflarla ne kadar ilişkilidir. Burada
amaç her sınıf başka sınıf ile minimum etkileşimde bulunmasıdır. Tabi bu ne
kadar mümkün olabilir o da ayrı mesele , fakat biz elimizden geldiğince
sınıfları özgürleştirebilmeliyiz. Yoksa dediğimiz gibi bir kodu değiştirirken
başka bir sınıfı da etkilediği için onu da göz önüne almalıyız. O da başka bir
sınıfla ilişkiliyse işin içinden çıkmakta zorlanabiliriz. Buna ek olarak da
değişkenlerimizi private olarak tanımlamamız mümkünse öncelik private
tanımlamalıyız , olmazsa default, procted ve mecbur kalmadıkça public
kullanmamalıyız. Şimdi kısa bir kod coupling konusunu umarım daha iyi anlayabiliriz.
class A {
void
metod() {
B
b = new B();
b.isim
= "Kotu Tanimlama";
System.out.println(b.isim);
}
}
class B {
public
String isim;
}
//
class A {
void
metod() {
B
b = new B();
b.setIsim("iyi
Tanimlama");
System.out.println(b.getIsim());
}
}
class B {
private
String isim;
public String
getIsim() {
return isim;
}
public void
setIsim(String isim) {
this.isim =
isim;
}
}
Şimdi
de Cohesion konusunu bakıp yazıyı tamamlayalım. Burada ise her sınıfın çok iyi
tanımlanmış olmasıdır. Örneğin bir odamız olduğunu düşünüp her yerde eşyalar
var. Bunu mu tercih ederseniz yoksa ufak ufak odalarımızda ve her birinde ne
olduğunu tam olarak bildiğimiz bir şey mi tercih edersiniz. İşte tam da bu
noktada cohesion ortaya çıkıyor. Bir de kodla açıklarsak ;
Class Sinif(){
Void oda1(){}
Void oda2()[}
Void oda3(){}
}
//yerine
Class SinifOda1(){
Void oda1(){}
}
Class SinifOda2(){
Void oda2(){}
}
Class SinifOda3(){
Void oda3(){}
}
Hiç yorum yok:
Yorum Gönder