Sobes.tech
Middle

Podes falar sobre alguns padrões de projeto 'builder' no Android?

sobes.tech IA

Resposta da IA

O padrão "Construtor" (Builder) é usado para criar objetos complexos passo a passo.

Exemplos de uso em Android:

  1. AlertDialog.Builder: Criação de diálogos com a possibilidade de especificar título, mensagem, botões e outras propriedades.

    new AlertDialog.Builder(context)
        .setTitle("Título")
        .setMessage("Texto da mensagem")
        .setPositiveButton("OK", (dialog, which) -> {
            // Ação ao clicar em OK
        })
        .setNegativeButton("Cancelar", null)
        .show();
    
  2. NotificationCompat.Builder: Construção de notificações para a barra de estado.

    NotificationCompat.Builder builder = new NotificationCompat.Builder(context, CHANNEL_ID)
        .setSmallIcon(R.drawable.ic_notification)
        .setContentTitle("Título da notificação")
        .setContentText("Texto da notificação")
        .setPriority(NotificationCompat.PRIORITY_DEFAULT);
    
    Notification notification = builder.build();
    // Envio da notificação através do NotificationManager
    
  3. Uri.Builder: Criação de URI com diferentes parâmetros.

    Uri builtUri = new Uri.Builder()
        .scheme("http")
        .authority("www.exemplo.com")
        .appendPath("caminho")
        .appendQueryParameter("param1", "valor1")
        .build();
    
  4. ViewModelProvider.Builder: (Nos componentes de arquitetura do ciclo de vida) Construção de uma fábrica para ViewModel.

    ViewModelProvider provider = new ViewModelProvider(activity, new ViewModelProvider.AndroidViewModelFactory(application));
    MyViewModel viewModel = provider.get(MyViewModel.class);
    

Vantagens principais do uso do builder:

  • Melhora a legibilidade do código ao criar objetos com muitos parâmetros opcionais.
  • Permite evitar a criação de múltiplos construtores.
  • Garante uma construção passo a passo do objeto.
  • O objeto é criado somente após a chamada do método build().