<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Πρώτα Βήματα - Αρχές προγραμματισμού</title><link>https://www.dotnetzone.gr:443/cs/forums/72/ShowForum.aspx</link><description>Αναρωτιέστε τι σημαίνει object; Class; Inheritance; Design pattern; Την απάντηση μπορείτε να την βρείτε εδώ!</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Πότε και πως να χρησιμοποιήσω ένα Design pattern?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/48311.aspx</link><pubDate>Mon, 09 Feb 2009 23:27:48 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:48311</guid><dc:creator>pap</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/48311.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=72&amp;PostID=48311</wfw:commentRss><description>Thanks για το link,&amp;nbsp;έχω διαβάσει κάποια πράγματα&amp;nbsp;και υλοποίησα τα παραδείγματα που έχει το &lt;A href="http://www.dofactory.com"&gt;www.dofactory.com&lt;/A&gt;, απλά δυσκολεύομαι να καταλάβω πότε χρειάζονται. Πάντως μπορώ να πω ότι κατατοπίστικα κάπως με την απάντηση του cap.</description></item><item><title>Απ: Πότε και πως να χρησιμοποιήσω ένα Design pattern?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/48310.aspx</link><pubDate>Mon, 09 Feb 2009 23:05:44 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:48310</guid><dc:creator>manosB</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/48310.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=72&amp;PostID=48310</wfw:commentRss><description>&lt;p&gt;Δες και αυτό που έχει C# παραδείγματα για τα πιο γνωστά patterns:&lt;/p&gt;&lt;p&gt;http://www.dofactory.com/Patterns/Patterns.aspx#list &lt;/p&gt;</description></item><item><title>Απ: Πότε και πως να χρησιμοποιήσω ένα Design pattern?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/48309.aspx</link><pubDate>Mon, 09 Feb 2009 23:00:15 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:48309</guid><dc:creator>cap</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/48309.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=72&amp;PostID=48309</wfw:commentRss><description>Τα design patterns είναι ουσιαστικά, μοτίβα τα οποία έχουν προκύψει από την ανάγκη προτυποποίησης κάποιων πραγμάτων. Αυτό σημαίνει, πρακτικά, οτι κάτι που κάνουν πολλοί άνθρωποι για τον ίδιο λόγο με παραπλήσιους τρόπους, κάποια στιγμή πήρε ένα όνομα και έγινε pattern. Ετσι, πολλές φορές είναι δύσκολο να πάμε "αντίστροφα", και να αξιολογήσουμε τις συνθήκες που πρέπει να ισχύουν για να χρησιμοποιήσουμε ένα design pattern.&lt;br /&gt;&lt;br /&gt;Ορισμένα (π.χ. GoF observer) δεν χρειάζεται να τα χρησιμοποιήσεις, μια και είναι ενσωματωμένα στο προγραμματιστικό μοντέλο του .net (event model). Αλλα, όπως π.χ. το GoF singleton, είναι πιό εύκολο να χρησιμοποιηθούν, απλά χρειάζεται αρκετή εμπειρία για να αναγνωρίσεις τις συνθήκες κάτω από τις οποίες θα μπορούσε πραγματικά να σε βοηθήσει κάτι τέτοιο χωρίς να οδηγήσει σε over-engineering. &lt;br /&gt;&lt;br /&gt;Ας δούμε το Singleton, μια και το πιάσαμε: Τι κάνει; Σου δίνει μόνο ένα instance της κλάσης σου. Πού το χρειάζεσαι; Οταν η χρήση π.χ. static (shared στη VB) members δεν σε καλύπτει. Πότε δεν σε καλύπτει; Οταν π.χ. θέλεις να αποθηκεύεις το state του αντικειμένου σου ώστε να κάνεις rollback σε προηγούμενα states ή να κρατάς ιστορικό, ή όταν θέλεις κατά βούληση και με εύκολο τρόπο να "πετάς" το state του και να φτιάχνεις ένα νέο αντικείμενο, εξασφαλίζοντας και πάλι όμως οτι θα έχεις το πολύ ένα instance. Οχι οτι όλα αυτά δεν μπορείς να τα κάνεις με shared / static, όμως θα σου έσπαγαν τα νεύρα και θα έπρεπε να εφεύρεις δεκάδες non-standard "κόλπα" για να πετύχεις την ίδια λειτουργικότητα. Γι'αυτό και το singleton pattern έχει νόημα ύπαρξης.&lt;br /&gt;&lt;br /&gt;Η σωστή χρήση των patterns, γενικά, είναι ένα δύσκολο θέμα. Ενας βασικός εμπειρικός κανόνας που πρέπει κανείς να έχει υπόψη ειναι οτι τα patterns υπάρχουν για να κάνουν τη ζωή μας (και τη συντήρηση του κώδικά μας) ευκολότερη. Αν η επιλογή ενός pattern φαίνεται οτι παράγει κώδικα πιό συντηρήσιμο, που κάνει ακριβώς αυτό που θα θέλαμε και που αναγνωρίζεται εύκολα από έναν τρίτο προγραμματιστή (δεδομένου οτι είναι πολύ πιό εύκολο να πεις "εδώ χρησιμοποιείται το pattern x" από το να πεις "εδώ έχω κάνει καμμια 15αριά κολπάκια για να κάνω αυτό κι εκείνο"), τότε η επιλογή του έχει νόημα. Αλλιώς, ζούμε και χωρίς patterns, δεν είναι αναγκαστική η χρήση τους.</description></item><item><title>Πότε και πως να χρησιμοποιήσω ένα Design pattern?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/48303.aspx</link><pubDate>Mon, 09 Feb 2009 21:30:25 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:48303</guid><dc:creator>pap</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/48303.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=72&amp;PostID=48303</wfw:commentRss><description>&lt;P&gt;Έχω διαβάσει και μελετήσει διάφορα design patterns, όμως δεν έχω καταλάβει πότε μου χρειάζονται και πως θα τα χρησιμοποιήσω. Μπορεί κάποιος να δώσει μια εξήγηση στο θέμα ή έστω ένα παράδειγμα χρήσης ενός design pattern;&lt;/P&gt;</description></item></channel></rss>