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

 

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

Πότε και πως να χρησιμοποιήσω ένα Design pattern?

Îåêßíçóå áðü ôï ìÝëïò pap. Τελευταία δημοσίευση από το μέλος pap στις 09-02-2009, 15:27. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  09-02-2009, 13:30 48303

    Πότε και πως να χρησιμοποιήσω ένα Design pattern?

    Έχω διαβάσει και μελετήσει διάφορα design patterns, όμως δεν έχω καταλάβει πότε μου χρειάζονται και πως θα τα χρησιμοποιήσω. Μπορεί κάποιος να δώσει μια εξήγηση στο θέμα ή έστω ένα παράδειγμα χρήσης ενός design pattern;

  •  09-02-2009, 15:00 48309 σε απάντηση της 48303

    Απ: Πότε και πως να χρησιμοποιήσω ένα Design pattern?

    Τα design patterns είναι ουσιαστικά, μοτίβα τα οποία έχουν προκύψει από την ανάγκη προτυποποίησης κάποιων πραγμάτων. Αυτό σημαίνει, πρακτικά, οτι κάτι που κάνουν πολλοί άνθρωποι για τον ίδιο λόγο με παραπλήσιους τρόπους, κάποια στιγμή πήρε ένα όνομα και έγινε pattern. Ετσι, πολλές φορές είναι δύσκολο να πάμε "αντίστροφα", και να αξιολογήσουμε τις συνθήκες που πρέπει να ισχύουν για να χρησιμοποιήσουμε ένα design pattern.

    Ορισμένα (π.χ. GoF observer) δεν χρειάζεται να τα χρησιμοποιήσεις, μια και είναι ενσωματωμένα στο προγραμματιστικό μοντέλο του .net (event model). Αλλα, όπως π.χ. το GoF singleton, είναι πιό εύκολο να χρησιμοποιηθούν, απλά χρειάζεται αρκετή εμπειρία για να αναγνωρίσεις τις συνθήκες κάτω από τις οποίες θα μπορούσε πραγματικά να σε βοηθήσει κάτι τέτοιο χωρίς να οδηγήσει σε over-engineering.

    Ας δούμε το Singleton, μια και το πιάσαμε: Τι κάνει; Σου δίνει μόνο ένα instance της κλάσης σου. Πού το χρειάζεσαι; Οταν η χρήση π.χ. static (shared στη VB) members δεν σε καλύπτει. Πότε δεν σε καλύπτει; Οταν π.χ. θέλεις να αποθηκεύεις το state του αντικειμένου σου ώστε να κάνεις rollback σε προηγούμενα states ή να κρατάς ιστορικό, ή όταν θέλεις κατά βούληση και με εύκολο τρόπο να "πετάς" το state του και να φτιάχνεις ένα νέο αντικείμενο, εξασφαλίζοντας και πάλι όμως οτι θα έχεις το πολύ ένα instance. Οχι οτι όλα αυτά δεν μπορείς να τα κάνεις με shared / static, όμως θα σου έσπαγαν τα νεύρα και θα έπρεπε να εφεύρεις δεκάδες non-standard "κόλπα" για να πετύχεις την ίδια λειτουργικότητα. Γι'αυτό και το singleton pattern έχει νόημα ύπαρξης.

    Η σωστή χρήση των patterns, γενικά, είναι ένα δύσκολο θέμα. Ενας βασικός εμπειρικός κανόνας που πρέπει κανείς να έχει υπόψη ειναι οτι τα patterns υπάρχουν για να κάνουν τη ζωή μας (και τη συντήρηση του κώδικά μας) ευκολότερη. Αν η επιλογή ενός pattern φαίνεται οτι παράγει κώδικα πιό συντηρήσιμο, που κάνει ακριβώς αυτό που θα θέλαμε και που αναγνωρίζεται εύκολα από έναν τρίτο προγραμματιστή (δεδομένου οτι είναι πολύ πιό εύκολο να πεις "εδώ χρησιμοποιείται το pattern x" από το να πεις "εδώ έχω κάνει καμμια 15αριά κολπάκια για να κάνω αυτό κι εκείνο"), τότε η επιλογή του έχει νόημα. Αλλιώς, ζούμε και χωρίς patterns, δεν είναι αναγκαστική η χρήση τους.
    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  09-02-2009, 15:05 48310 σε απάντηση της 48303

    Απ: Πότε και πως να χρησιμοποιήσω ένα Design pattern?

    Δες και αυτό που έχει C# παραδείγματα για τα πιο γνωστά patterns:

    http://www.dofactory.com/Patterns/Patterns.aspx#list 


    Manos
  •  09-02-2009, 15:27 48311 σε απάντηση της 48310

    Απ: Πότε και πως να χρησιμοποιήσω ένα Design pattern?

    Thanks για το link, έχω διαβάσει κάποια πράγματα και υλοποίησα τα παραδείγματα που έχει το www.dofactory.com, απλά δυσκολεύομαι να καταλάβω πότε χρειάζονται. Πάντως μπορώ να πω ότι κατατοπίστικα κάπως με την απάντηση του cap.
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems