CodeBlanks Logo Icon CodeBlanks

mixin kullanımı

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

main.dart
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

main.dart
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

Soru
class Person ____ Speaker {
  Person();
}
Cevap
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ı

Orta seviye bölümündeki tüm dersler