Dart dilinde composition (bileşim) kavramı, nesnelerin başka nesneleri içermesi ve bu bileşenlerin işlevlerini kullanması anlamına gelir. Dart dilinde composition, inheritance (kalıtım) yerine tercih edilen bir tasarım desenidir.

Composition, bir nesnenin başka bir nesneyi içermesini sağlar ve bu şekilde ihtiyaç duyulan işlevselliği nesneler arasında paylaşmayı sağlar. Bu, daha esnek ve ölçeklenebilir kod yazmanıza yardımcı olur, çünkü kalıtımın getirdiği sınırlamalardan kaçınır ve nesneler arasında gevşek bir bağımlılık sağlar.

Örneğin, bir Araba sınıfını düşünelim ve bu Araba’nın bir Motor ve Tekerlekler gibi bileşenleri olsun. Bu durumda, Araba sınıfı Motor ve Tekerlekler gibi bileşen sınıfları içerecektir:

class Araba {
Motor motor;
List tekerlekler;

Araba(this.motor, this.tekerlekler);

void hareketEt() {
motor.calistir();
print(‘Araba hareket ediyor.’);
}

void dur() {
motor.durdur();
print(‘Araba durdu.’);
}
}

class Motor {
void calistir() {
print(‘Motor çalıştı.’);
}

void durdur() {
print(‘Motor durdu.’);
}
}

class Tekerlek {
int boyut;

Tekerlek(this.boyut);
}

Yukarıdaki örnekte, Araba sınıfı, Motor ve Tekerlekler bileşenlerini içerir. Araba’nın hareket etme veya durma işlemleri Motor bileşeninin işlevlerini kullanır. Tekerlekler ise Araba’nın bir özelliğidir.

Composition kullanarak nesneler arasında böyle bir ilişki kurabilir ve gerektiğinde bileşenlerin davranışını kullanabilirsiniz. Bu şekilde, daha modüler, ölçeklenebilir ve esnek bir kod yapısı elde edebilirsiniz.

Dart dilinde composition, inheritance’a (kalıtım) göre daha esnek bir yaklaşımdır, çünkü kalıtımın getirdiği sınırlamalar olmadan bileşenlerin değiştirilebilir veya yeni bileşenler eklenebilir. Böylece kodunuz daha az kırılgan ve daha kolay değiştirilebilir hale gelir.

YORUMLAR

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir