Dart mixins

Tempo de leitura: 2 minutes

Usaremos Mixins do Dart neste artigo.

Mixins permitem reutilizar código da mesma forma que hierarquias de múltiplas classes.

Como posso utilizar um mixin?

Use mixins com uma palavra-chave para aplicar a uma ou mais classes em uma única classe.

Sem estender a classe, as classes mixin fornecem as propriedades da classe pai.

O dilema da herança ou subclasse é resolvido através de mixins.

Todos os membros não estáticos declarados pelo mixin estão incluídos na declaração do mixin.

 

Caso de uso:

Por exemplo, você pode ter uma classe Maximal com o método eat(). Tanto “Maximal” quanto “Bird” podem ser úteis para o código da classe já mencionada. Imagine, entretanto, que você está introduzindo uma classe chamada Maximal . Você provavelmente tem recursos em “Bird” (como um método chamado fly()) que gostaria de usar no Maximal, mas não adicionar em “Bird”. Um excelente aplicativo para o mixin “Bird” está aqui.

Vamos criar um exemplo para Mixins de compreensão da massa.

Estou usando https://dartpad.dev/? para criar exemplo

abra o Dart Pad e você pode mostrar o método de execução no lado direito do Dartpad, limpe o código entre o método de execução.

Agora criamos uma classe Animal

class Animal{ 
  void animalPrint(){
    print("Animal");
  }
}

Depois disso eu crio a classe Bird

class Bird{ 
  void birdPrint(){
    print("Bird");
  }
}

E agora criamos funcionalidades usando mixin.

primeiro criamos a funcionalidade eat

mixin Eat{
  void eat(){
    print("Eating");
  }
}

agora a próxima funcionalidade é executada

mixin Run{
 void run(){
   print("Runing");
 } 
}

mixin Fly{
  void fly(){
    print("Flying");
  }
}

Agora estamos usando a funcionalidade com palavra-chave ‘with’ nas classes animal e bird

class Animal with Run,Eat{ 
  void animalPrint(){
    print("Animal");
  }
}

class Bird with Eat,Fly{
  void birdPrint(){
    print("Bird");
  }
}

agora vamos para o método principal e agora criamos um objeto de classe como animal e bird e podemos usar diretamente sem estender a classe.

void main() {
  Animal animal=Animal();
  animal.animalPrint();
  animal.eat();
  animal.run();
  Bird bird=Bird();
  bird.birdPrint();
  bird.eat();
  bird.fly();
}

para mais informações, consulte: (Maxin)