Sobes.tech
Middle

Tudsz néhány 'builder' tervezési mintáról az Androidban?

sobes.tech MI

Válasz az MI-től

A "Builder" minta lényegében összetett objektumokat lépésről lépésre hoz létre.

Android példák:

  1. AlertDialog.Builder: Dialógusok létrehozása, amelyek lehetővé teszik a fejléc, üzenet, gombok és más tulajdonságok megadását.

    new AlertDialog.Builder(context)
        .setTitle("Cím")
        .setMessage("Üzenet szövege")
        .setPositiveButton("OK", (dialog, which) -> {
            // Cselekvés az OK kattintásakor
        })
        .setNegativeButton("Mégse", null)
        .show();
    
  2. NotificationCompat.Builder: Értesítések építése az állapotsávhoz.

    NotificationCompat.Builder builder = new NotificationCompat.Builder(context, CHANNEL_ID)
        .setSmallIcon(R.drawable.ic_notification)
        .setContentTitle("Értesítés címe")
        .setContentText("Értesítés szövege")
        .setPriority(NotificationCompat.PRIORITY_DEFAULT);
    
    Notification notification = builder.build();
    // Értesítés küldése NotificationManager segítségével
    
  3. Uri.Builder: URI-k létrehozása különböző paraméterekkel.

    Uri builtUri = new Uri.Builder()
        .scheme("http")
        .authority("www.pelda.com")
        .appendPath("utvonal")
        .appendQueryParameter("param1", "ertek1")
        .build();
    
  4. ViewModelProvider.Builder: (Lifecycle Architecture Components-ben) Gyár építése ViewModel-hez.

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

A builder használatának fő előnyei:

  • Javítja a kód olvashatóságát, amikor sok opcionális paraméterrel rendelkező objektumokat hozunk létre.
  • Elkerüli sok konstruktor létrehozását.
  • Biztosítja az objektum lépésenkénti építését.
  • Az objektum csak a build() hívása után jön létre.