Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

abstract class

Îåêßíçóå áðü ôï ìÝëïò xioni. Τελευταία δημοσίευση από το μέλος xioni στις 20-05-2008, 09:47. Υπάρχουν 2 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  19-05-2008, 14:58 42087

    abstract class

    Μπορεί κάποιος να μου πει με απλά ελληνικά τι εστί abstract class και που χρησιμοποιείται σε web εφαρμογες ?

    ευχαριστώ
  •  19-05-2008, 16:27 42088 σε απάντηση της 42087

    Απ: abstract class

    Χμμ .. το abstract class δεν έχει άμεση σχέση με web development, ή client development κτλ κτλ.

    Η έννοια είναι κοντά σε αυτή του interface, με τη διαφορά ότι το abstract class έχει και κώδικα μέσα. Π.χ. ...

    Πες ότι έχω μια σελίδα, η οποία παίρνει δεδομένα απο 4 web services, τα οποία μετά δείχνει στη σελίδα. Και σαν "καλός" developer, σκέφτομαι ότι θα ήταν καλή ιδέα αυτόν τον κώδικα που μιλάει στο εκάστοτε web service, να τον υλοποιήσω μέσα σε κλάσσεις, κι όχι μέσα στο ίδιο το aspx ή code behind.

    Άρα ... κάθε τέτοια κλάσση, θα έκανε περίπου τα ίδια πράγματα - φτιάχνει τον proxy στο εκάστοτε web service, κάνει την κλήση για να πάρει δεδομένα, τα επεξεργάζεται, σκοτωνει τον proxy, και επιστρέφει τα "επεξεργασμένα" στη σελίδα.

    Αν έχω 4 - 5 διαφορετικά web services, άρα και 4 - 5 διαφορετικές κλάσσεις για να τους μιλάω, όλες οι κλάσσεις θα κάνουν τα παραπάνω πράγματα. Τα περισσότερα απο αυτά είναι κοινά. Οι μόνες διαφορές τους είναι το "φτιάξε τον proxy", "κάνε την κλήση", "επεξεργάσου τα δεδομένα". Η βασική λειτουργικότητα απο κάτω είναι κατα τ' άλλα η ίδια.

    Σε κάποιο τέτοιο σενάριο λοιπόν, είναι σχετικά λογικό να γράψω μια abstract class η οποία υλοποιεί τα "κοινά" μέρη, και αναγκάζει το developer που θα κάνει inherit απο αυτή να υλοποιήσει μόνο τα "διαφορετικά" κομμάτια. Έτσι, κρατάω τον έλεγχο της υποδομής, και βάζω το developer να γράψει μόνο αυτα που χρειάζεται να γράψει.

    Ένα επίσης προτέρημα είναι ότι έχοντας υλοποιήσει έτσι την εφαρμογή, μπορώ να πάω σε αυτή την κλάσση αργότερα, και να βάλω διάφορα πραγματα μέσα - πχ. logging, execution time statistics κτλ κτλ - και με μια μόνο αλλαγή, έχω "καθαρίσει" για 4 - 5 κλάσσεις Cool


    ... ίσως δεν είναι και το καλύτερο παράδειγμα για ένα abstract class, αλλά τι να περιμένεις μεσημεριάτικα ...  

    Angel
    O:]
  •  20-05-2008, 09:47 42099 σε απάντηση της 42088

    Απ: abstract class

    μια χαρά είναι, το κατάλαβα, σε ευχαριστώ
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems