Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

Como compartilhar método de uma classe com Mixin

Como compartilhar método de uma classe com Mixin

Introdução

Mixins são semelhantes às classes, mas não podem ser instanciados. Em vez disso, eles usam seus métodos e atributos para adicionar funcionalidades a outras classes.


Vantagens de usar mixins em Dart

Mixins são uma forma de compartilhar código entre classes em Dart. Contudo em vez disso, são usados para adicionar métodos ou atributos a outras classes.

Mixins oferecem uma série de vantagens, incluindo:

  • Reuso de código: Mixins permitem que você compartilhe código comum entre classes, sem precisar duplicar o código em cada classe. Enfim isso pode ajudar a reduzir o tamanho e a complexidade do seu código.
  • Flexibilidade: Mixins permitem que você combine funcionalidades de várias classes em uma única classe. Porque isso pode ser útil para criar classes personalizadas com funcionalidades específicas.
  • Testabilidade: Mixins podem ser usados para adicionar funcionalidades de teste a classes. Isso pode facilitar a escrita de testes para suas classes.

Alguns exemplos de uso de mixins:

  • Adicionar funcionalidades comuns a várias classes: Um mixin pode ser usado para adicionar um método de log a todas as classes. Isso pode ser útil para depurar seu código ou para fins de auditoria.
  • Criar classes personalizadas com base em classes existentes: Um mixin pode ser usado para adicionar funcionalidades a uma classe existente. Por exemplo, um mixin pode ser usado para adicionar um método de validação a uma classe que representa dados.
  • Testar classes: Um mixin pode ser usado para adicionar métodos de teste a uma classe. Da mesma forma isso pode facilitar a escrita de testes para suas classes.

Usando o on

Contudo para compartilhar um método de uma classe com um mixin, use o on. Bem como o on especifica a classe da qual o método é herdado.

No exemplo a seguir, o mixin Cacar compartilha o método cacar() da classe Reptil.

mixin Cacar on Reptil {
  void cacar(String presa){
    print ('${this.runtimeType}-------');
    nadar();
    rastejar();
    morder();
    print('Comeu $presa');
  }
}

A classe Crocodilo estende a classe Reptil e o mixin Cacar. Porque isso significa que a classe Crocodilo tem acesso ao método cacar().

class Crocodilo extends Reptil with Cacar{}

Da mesma forma no exemplo a seguir, o método cacar() é chamado para um objeto da classe Crocodilo.

Crocodilo().cacar('Zebra');

Saída:

Crocodilo-------
Nadando ...
Rastejando ...
Nhac!
Comeu Zebra

Outras palavras-chave

Além do on, também é possível usar outras palavras-chave para compartilhar métodos de uma classe com um mixin.

  • with: Esta palavra-chave é equivalente ao on.
  • implements: Esta palavra-chave especifica que a classe implementa os métodos do mixin.

Exemplo

No exemplo a seguir, o mixin Nadar é implementado pela classe Peixe. Isso significa que a classe Peixe tem acesso aos métodos nadar() e morder() do mixin.

mixin Nadar{
  void nadar() => print('Nadando ...');
}

class Peixe implements Nadar{
  void alimentar(){
    print('Peixe ------');
    nadar();
    morder();
  }
}

Primeiramente no exemplo a seguir, o método alimentar() é chamado para um objeto da classe Peixe.

Peixe().alimentar();

Saída:

Peixe ------
Nadando ...
Nhac!

Conclusão

Enfim Mixins são uma ferramenta poderosa para compartilhar código entre classes. Sendo usados para simplificar o código e melhorar sua reusabilidade. Contudo como mostrei neste artigo como compartilhar método de uma classe com Mixin.

Assine nossa newsletter

Seja avisado sempre que surgir conteúdo novo

Blog mundo dev Mobile - Copyright © 2024 - Todos os Direitos Reservados.