Sobes.tech
Middle

Czy możesz opowiedzieć o niektórych wzorcach projektowych 'builder' w Android?

sobes.tech AI

Odpowiedź od AI

Wzorzec "Budowniczy" (Builder) służy do tworzenia złożonych obiektów krok po kroku.

Przykłady użycia w Android:

  1. AlertDialog.Builder: Tworzenie dialogów z możliwością określenia tytułu, wiadomości, przycisków i innych właściwości.

    new AlertDialog.Builder(context)
        .setTitle("Tytuł")
        .setMessage("Tekst wiadomości")
        .setPositiveButton("OK", (dialog, which) -> {
            // Działanie po kliknięciu OK
        })
        .setNegativeButton("Anuluj", null)
        .show();
    
  2. NotificationCompat.Builder: Budowa powiadomień dla paska stanu.

    NotificationCompat.Builder builder = new NotificationCompat.Builder(context, CHANNEL_ID)
        .setSmallIcon(R.drawable.ic_notification)
        .setContentTitle("Tytuł powiadomienia")
        .setContentText("Tekst powiadomienia")
        .setPriority(NotificationCompat.PRIORITY_DEFAULT);
    
    Notification notification = builder.build();
    // Wysyłanie powiadomienia przez NotificationManager
    
  3. Uri.Builder: Tworzenie URI z różnymi parametrami.

    Uri builtUri = new Uri.Builder()
        .scheme("http")
        .authority("www.przyklad.com")
        .appendPath("sciezka")
        .appendQueryParameter("param1", "wartosc1")
        .build();
    
  4. ViewModelProvider.Builder: (W komponentach architektury cyklu życia) Budowa fabryki dla ViewModel.

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

Główne zalety korzystania z buildera:

  • Poprawia czytelność kodu przy tworzeniu obiektów z dużą liczbą opcjonalnych parametrów.
  • Pozwala uniknąć tworzenia wielu konstruktorów.
  • Zapewnia krokowe budowanie obiektu.
  • Obiekt jest tworzony dopiero po wywołaniu metody build().