Sobes.tech
Junior — Middle

Ποιες προσεγγίσεις πρέπει να χρησιμοποιηθούν για να αποφευχθεί η άμεση δημιουργία μιας λειτουργικής στιγμιότυπου στον κώδικα;

sobes.tech AI

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

Για να αποφευχθεί η άμεση δημιουργία μιας λειτουργίας (π.χ. αντικειμένου ή κλάσης) στον κώδικα, εφαρμόζονται οι ακόλουθες προσεγγίσεις:

  1. Μέθοδος Εργοστασίου (Factory Method) — δημιουργεί αντικείμενα μέσω ειδικών μεθόδων, κρύβοντας τις λεπτομέρειες δημιουργίας.

  2. Εισαγωγή εξαρτήσεων (Dependency Injection) — τα αντικείμενα περνιούνται στη κλάση από έξω, συνήθως μέσω του κατασκευαστή ή ενός setter, διευκολύνοντας την αντικατάσταση και τη δοκιμή.

  3. Χρήση διεπαφών και αφαιρέσεων — ο κώδικας λειτουργεί με διεπαφές, και οι συγκεκριμένες υλοποιήσεις δημιουργούνται και περνιούνται από έξω.

  4. Λάμδα εκφράσεις και λειτουργικές διεπαφές — αντί να δημιουργούνται νέες κλάσεις, μπορούν να περνούν λειτουργίες ως παράμετροι.

Παράδειγμα με εισαγωγή εξαρτήσεων σε Android (Kotlin):

interface ClickHandler {
    fun onClick()
}

class MyActivity(private val clickHandler: ClickHandler) {
    fun setup() {
        // Χρησιμοποιούμε τον περασμένο χειριστή αντί να δημιουργήσουμε νέο
        button.setOnClickListener { clickHandler.onClick() }
    }
}

Αυτή η προσέγγιση αυξάνει την ευελιξία και τη δοκιμαστικότητα του κώδικα, καθώς και διευκολύνει τη συντήρηση και την επέκταση.