mixin kullanımı
- Dart kursu
- Orta seviye
- Ders 25/116
- 5 dk
with ile mixin uygulama öğrenirsin.
with anahtar kelimesi
Bir mixin'i bir sınıfa uygulamak için with anahtar kelimesi kullanılır. Sınıf bildiriminde extends'ten sonra, virgülle ayrılmış mixin listesi gelir.
Örnek: class Person with Speaker { ... }. Burada Person sınıfı Speaker mixin'ini uygular; Speaker'ın tüm metotlarına erişir. Mixin, sınıfa bir davranış ekler; extends gibi miras alma değil, davranış birleştirme yapar. Person p = Person(); p.speak(); biçiminde mixin metodu örnek üzerinden çağrılır.
Aynı mixin birden çok sınıfta
Bir mixin birden çok sınıfa uygulanabilir; bu, mixin'lerin gücüdür. Aynı davranışı her sınıfa tekrar yazmak yerine, tek mixin tüm sınıflarda paylaşılır.
Örnek: mixin Speaker { void speak() { print('Konuşuyor'); } } mixin'i hem class Person with Speaker hem class Robot with Speaker için kullanılabilir. Her iki sınıf da speak() metodunu örnek üzerinden çağırabilir. Bu, kod tekrarını önler; davranış tek bir yerde tanımlı, birden çok yerde kullanılır. Mixin, kalıtım ağacını bozmadan davranış eklemenin temiz yoludur.
Uygulama Speaker mixin'ini iki sınıfa uygula
Var olan Speaker mixin'ini koru. Person adında bir sınıf tanımla ve with Speaker ile mixin'i uygula; Person(); yapıcısı ekle. Robot adında ikinci bir sınıf tanımla ve aynı şekilde with Speaker ile uygula; Robot(); yapıcısı ekle. main içinde her iki sınıftan birer örnek oluştur ve her birinde speak() çağrısı yap.
Başlangıç kodu
mixin Speaker {
void speak() {
print('Konuşuyor');
}
}
// Person ve Robot sınıflarını Speaker ile uygula
void main() {
// Person ve Robot örnekleri oluştur ve speak() çağır
}Örnek çözüm
mixin Speaker {
void speak() {
print('Konuşuyor');
}
}
class Person with Speaker {
Person();
}
class Robot with Speaker {
Robot();
}
void main() {
var p = Person();
var r = Robot();
p.speak();
r.speak();
}Beklenen çıktı
Konuşuyor Konuşuyor
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 with anahtarını ekle
class Person ____ Speaker {
Person();
}
class Person with Speaker {
Person();
}
Açıklama: with, mixin'i sınıfa uygular.
2 class Robot with Speaker { } ne sağlar?
- Robot sınıfı Speaker mixin'inin metotlarını alır Doğru cevap
- Robot sınıfını Speaker'ın yapıcısıyla başlatır
- Speaker'ı Robot'un alt sınıfı yapar
- Robot'un yapıcısını gizler
Açıklama: with, mixin'in metotlarını sınıfa uygular.
3 with parçalarını eşle
| Kavram | Anlamı |
|---|---|
with |
Uygulama anahtarı |
Speaker |
Mixin adı |
Person |
Sınıf adı |