Sobes.tech
Middle

Μπορείς να μιλήσεις για μερικά μοτίβα σχεδίασης 'builder' στο Android;

sobes.tech AI

Απάντηση από AI

Το μοτίβο "Builder" χρησιμοποιείται για τη δημιουργία πολύπλοκων αντικειμένων βήμα προς βήμα.

Παραδείγματα χρήσης σε Android:

  1. AlertDialog.Builder: Δημιουργία διαλόγων με δυνατότητα καθορισμού τίτλου, μηνύματος, κουμπιών και άλλων ιδιοτήτων.

    new AlertDialog.Builder(context)
        .setTitle("Τίτλος")
        .setMessage("Κείμενο μηνύματος")
        .setPositiveButton("OK", (dialog, which) -> {
            // Ενέργεια κατά το κλικ στο OK
        })
        .setNegativeButton("Ακύρωση", null)
        .show();
    
  2. NotificationCompat.Builder: Κατασκευή ειδοποιήσεων για τη γραμμή κατάστασης.

    NotificationCompat.Builder builder = new NotificationCompat.Builder(context, CHANNEL_ID)
        .setSmallIcon(R.drawable.ic_notification)
        .setContentTitle("Τίτλος ειδοποίησης")
        .setContentText("Κείμενο ειδοποίησης")
        .setPriority(NotificationCompat.PRIORITY_DEFAULT);
    
    Notification notification = builder.build();
    // Αποστολή της ειδοποίησης μέσω NotificationManager
    
  3. Uri.Builder: Δημιουργία URI με διάφορες παραμέτρους.

    Uri builtUri = new Uri.Builder()
        .scheme("http")
        .authority("www.paradeigma.com")
        .appendPath("monada")
        .appendQueryParameter("param1", "axrhmh")
        .build();
    
  4. ViewModelProvider.Builder: (Στα components αρχιτεκτονικής κύκλου ζωής) Δημιουργία εργοστασίου για ViewModel.

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

Τα κύρια πλεονεκτήματα της χρήσης του builder:

  • Βελτιώνει την αναγνωσιμότητα του κώδικα κατά τη δημιουργία αντικειμένων με πολλαπλές προαιρετικές παραμέτρους.
  • Αποφεύγει τη δημιουργία πολλαπλών κατασκευαστών.
  • Διασφαλίζει την κατασκευή του αντικειμένου βήμα προς βήμα.
  • Το αντικείμενο δημιουργείται μόνο μετά την κλήση της μεθόδου build().