mixin
- Dart kursu
- Orta seviye
- Ders 24/116
- 5 dk
mixin ile yeniden kullanılabilir kod öğrenirsin.
mixin nedir?
Bir mixin, yeniden kullanılabilir bir davranış bloğudur. Sınıflara with anahtar kelimesiyle uygulanır; böylece davranış birden çok sınıfta paylaşılır. Dart tekli kalıtım alır; mixin bu sınırı aşmanın yoludur.
Örnek: mixin Flyer { void fly() { print('Uçuyor'); } }. Bu mixin'i class Bird with Flyer { ... } biçiminde bir sınıfa uygularız. Bird sınıfı fly() metodunu doğrudan çağırabilir. Mixin'ler yapıcı içeremez ve tek başına örneklenemez; yalnızca bir sınıfa uygulandığında anlam kazanır. with anahtar kelimesini sonraki derste daha derin işleyeceğiz.
mixin tanımı
Bir mixin mixin anahtar kelimesiyle tanımlanır; ardından isim ve gövde gelir. Sınıf gövdesine benzer; ama yapıcı içeremez.
Örnek: mixin Greeter { String hello() { return 'Merhaba'; } }. Burada Greeter mixin'i hello() metodunu taşır. Mixin içinde metot, alan ve hatta diğer metotları çağıran davranışlar yer alabilir. Mixin tek başına çağrılamaz: Greeter() derleme hatası verir. Bir sınıfa with ile uygulandığında o sınıfın bir parçası olur ve örnek üzerinden çağrılır.
Uygulama Flyer mixin'ini tanımla ve uygula
Flyer adında bir mixin tanımla; void fly() { print('Uçuyor'); } metodunu ekle. Bird adında, Flyer mixin'ini uygulayan bir sınıf yaz: class Bird with Flyer { Bird(); }. main içinde var b = Bird(); ile örnek oluştur ve b.fly() çağrısı yap.
Başlangıç kodu
// Flyer mixin'ini tanımla
// Bird sınıfını Flyer ile uygula
void main() {
// Bird örneği oluştur ve fly() çağır
}Örnek çözüm
// Flyer mixin'ini tanımla
mixin Flyer {
void fly() {
print('Uçuyor');
}
}
class Bird with Flyer {
Bird();
}
void main() {
var b = Bird();
b.fly();
}Beklenen çıktı
Uçuyor
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir mixin neden kullanılır?
- Çalışma hızını artırmak için
- Sınıfın boyutunu küçültmek için
- Yapıcıları gizlemek için
- Davranışı birden çok sınıfta yeniden kullanmak için Doğru cevap
Açıklama: Mixin, davranışı birden çok sınıfta paylaşmanın temiz yoludur.
2 mixin bildirimini tamamla
class Flyer____ {
void fly() {
print('Uçuyor');
}
}
class Flyermixin {
void fly() {
print('Uçuyor');
}
}
Açıklama: mixin anahtar kelimesi mixin bildirimini başlatır.
3 mixin parçalarını eşle
| Kavram | Anlamı |
|---|---|
mixin |
Anahtar kelime |
Flyer |
Mixin adı |
with |
Uygulama anahtarı |