Sobes.tech
Middle

Kas sa saad rääkida mõnest 'builder' disainimustrist Androidis?

sobes.tech AI

Vastus AI-lt

"Builder" (Ehitis) muster kasutatakse keeruliste objektide samm-sammult loomiseks.

Näited Androidis:

  1. AlertDialog.Builder: Dialoogide loomine koos pealkirja, sõnumi, nuppude ja muude omadustega.

    new AlertDialog.Builder(context)
        .setTitle("Nimi")
        .setMessage("Sõnumi tekst")
        .setPositiveButton("OK", (dialog, which) -> {
            // Tegevus OK klikkimisel
        })
        .setNegativeButton("Tühista", null)
        .show();
    
  2. NotificationCompat.Builder: Teavituste loomine statusiribal.

    NotificationCompat.Builder builder = new NotificationCompat.Builder(context, CHANNEL_ID)
        .setSmallIcon(R.drawable.ic_notification)
        .setContentTitle("Teavituse pealkiri")
        .setContentText("Teavituse tekst")
        .setPriority(NotificationCompat.PRIORITY_DEFAULT);
    
    Notification notification = builder.build();
    // Teavituse saatmine NotificationManageri kaudu
    
  3. Uri.Builder: URI loomine erinevate parameetritega.

    Uri builtUri = new Uri.Builder()
        .scheme("http")
        .authority("www.example.com")
        .appendPath("path")
        .appendQueryParameter("param1", "väärtus1")
        .build();
    
  4. ViewModelProvider.Builder: (Lifecycle Architecture Components) Fabrika loomine ViewModelile.

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

Peamised eelised builderi kasutamisel:

  • Parandab koodi loetavust, kui objektide loomisel on palju mittehädavajalikke parameetreid.
  • Aitab vältida paljude konstruktorite loomist.
  • Võimaldab samm-sammult objekti luua.
  • Objekt luuakse ainult pärast build() meetodi väljakutset.