<?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>Visual C++ 6.0 / .NET (unmanaged)</title><link>https://www.dotnetzone.gr:443/cs/forums/30/ShowForum.aspx</link><description>Για τους hardcore developers, C/C++ forum για windows εφαρμογές!</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Απορία για OOP Inheritance vs Interface</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/69035.aspx</link><pubDate>Fri, 27 Jan 2012 23:37:51 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:69035</guid><dc:creator>nikos123</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/69035.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=30&amp;PostID=69035</wfw:commentRss><description>Το ένα δεν αποκλείει το άλλο.&lt;div&gt;Γενικά μια class μπορεί να έχει πολλά interfaces. Το κάθε ένα αναπαριστά μια&amp;nbsp;λειτουργικότητα&amp;nbsp;της κλάσης.&lt;/div&gt;&lt;div&gt;Οι clients που χρησιμοποιούν την&amp;nbsp;κλάση&amp;nbsp;για μια συγκεκριμένη&amp;nbsp;λειτουργία δεν&amp;nbsp;χρειάζεται&amp;nbsp;να&amp;nbsp;γνωρίζουν για&amp;nbsp;τις&amp;nbsp;υπόλοιπες, γιαυτό και αναφέρονται σ 'αυτήν σαν interface.&lt;/div&gt;&lt;div&gt;Π.χ. Ο client&amp;nbsp;μπορεί&amp;nbsp;να περιμένει&amp;nbsp;ένα&amp;nbsp;IList. Αυτό&amp;nbsp;δίνει&amp;nbsp;ευελιξία ώστε να προγραμματιστή να υλοποιήσει ArrayList, List, SortedList ... η&amp;nbsp;οποιαδήποτε&amp;nbsp;δομή&amp;nbsp;ανάλογα με τα&amp;nbsp;πλεονεκτήματα&amp;nbsp;τους&amp;nbsp;χωρίς να&amp;nbsp;επηρεαστεί&amp;nbsp;ο client.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Client μπορεί να είναι και το unit testing &amp;nbsp;γιαυτό και&amp;nbsp;τεστάρεται&amp;nbsp;καλύτερα μια (μεγάλη) κλάση που έχει interfaces.&amp;nbsp;Τεστάρουμε&amp;nbsp;χωριστά την κάθε λειτουργία της.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Inheritance χρησιμοποιούμε για να&amp;nbsp;απομονώσουμε&amp;nbsp;κοινό&amp;nbsp;κώδικα&amp;nbsp;δύο οι περισσοτέρων&amp;nbsp;παρόμοιων&amp;nbsp;κλάσεων.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;</description></item><item><title>Απ: Απορία για OOP Inheritance vs Interface</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/69032.aspx</link><pubDate>Fri, 27 Jan 2012 23:05:46 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:69032</guid><dc:creator>Kostis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/69032.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=30&amp;PostID=69032</wfw:commentRss><description>&lt;P&gt;Φιλαράκια σας ευχαριστώ πολύ και τους δύο για την βοήθεια.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Ερώτηση:&lt;/STRONG&gt; Πότε χρησιμοποιώ inheritance και πότε Interface?&lt;/P&gt;</description></item><item><title>Απ: Απορία για OOP Inheritance vs Interface</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/69019.aspx</link><pubDate>Thu, 26 Jan 2012 10:50:38 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:69019</guid><dc:creator>Markos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/69019.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=30&amp;PostID=69019</wfw:commentRss><description>Γενικά είναι πολύ καλή συνήθεια να ΜΗΝ ξεκινάς να γράφεις κλάσεις, αλλά να ξεκινάς γράφοντας interfaces (όχι, δεν τηρώ την συμβουλή μου όσο θά 'πρεπε). Είναι πολύ σημαντικό να μπορείς να περιγράψεις ΠΟΙΕΣ είναι οι λειτουργίες των αντικειμένων σου ΧΩΡΙΣ να σε απασχολεί πως αυτές υλοποιούνται. Θα γλυτώσεις το γράψιμο ΠΟΛΥ κώδικα αργότερα, χώρια του ότι θα είσαι σε θέση ν' αντιλαμβάνεσαι τις δυνατότητες των οντοτήτων σου ξεκάθαρα, ως σύνολο, αλλά και χωριστά. Αν ασκηθείς αρκετά, θα αποφύγεις πολύ rewriting στην πορεία και θα είσαι σε θέση να οργανώσεις πολύ καλύτερα τις κλάσεις σου. Επειδή θα βρεις πολλά κείμενα που να ασχολούνται με το "τεχνικό" μέρος, εγώ θα ήθελα να λειτουργήσω συμπληρωματικά παραθέτοντας μόνο ένα παράδειγμα:&lt;br&gt;&lt;br&gt;IDevice &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IBattery&lt;br&gt;Plug()&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Charge()&lt;br&gt;Unplug()&amp;nbsp;&amp;nbsp;&amp;nbsp; StopCharging()&lt;br&gt;TurnOn()&lt;br&gt;TurnOff()&lt;br&gt;&lt;br&gt;IPhone ...όχι το γνωστό.&lt;br&gt;Dial()&lt;br&gt;HangUp()&lt;br&gt;&lt;br&gt;ICellPhone: IDevice, IBattery, IPhone&lt;br&gt;&lt;br&gt;ICamera&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; IFlash&lt;br&gt;Focus()&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FlashOn()&lt;br&gt;Zoom()&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FlashOff()&lt;br&gt;&lt;br&gt;IPhotoCamera: ICamera, IFlash&lt;br&gt;TakePicture()&lt;br&gt;SavePicture()&lt;br&gt;DeletePicture()&lt;br&gt;&lt;br&gt;IVideoCamera: ICamera&lt;br&gt;CaptureVideo()&lt;br&gt;SaveVideo()&lt;br&gt;DeleteVideo()&lt;br&gt;&lt;br&gt;IRadio&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ISpeakers&lt;br&gt;PlugInHeadphones()&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VolumeOn()&lt;br&gt;UnplugHeadphones()&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VolumeOff()&lt;br&gt;SearchStation()&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IncreaseVolume()&lt;br&gt;TuneStation(RadioFrequency)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DecreaseVolume()&lt;br&gt;RadioOn()&lt;br&gt;RadioOff()&lt;br&gt;&lt;br&gt;Cellphone no camera, no radio ( ICellPhone, ISpeakers)&lt;br&gt;Cellphone with camera, no video, no radio (ICellPhone, IPhotoCamera, ISpeakers).&lt;br&gt;Cellphone with camera, video, no radio (ICellPhone, IPhotoCamera, IVideoCamera, ISpeakers)&lt;br&gt;Cellphone with everything ( ICellPhone, IPhotoCamera, IVideoCamera, IRadio, ISpeakers)&lt;br&gt;&lt;br&gt;Με το παράδειγμα αυτό θέλω να σου δείξω πόσο σημαντικό είναι να μπορείς να φαντάζεσαι, να διαχωρίζεις και να συνθέτεις τις λειτουργίες, χωρίς να χρειάζεται να τις υλοποιήσεις. Το πως θα υλοποιηθούν αυτές, εξαρτάται από το εκάστοτε hardware. Το θέμα είναι να υπάρχουν. Μετά είναι πρακτικά αδύνατο να χάσεις το μονοπάτι και να αρχίζεις να patch-άρεις κώδικα (πράγμα που δεν αποφύγεις αν ΔΕΝ ΔΙΑΧΩΡΙΣΕΙΣ τη λειτουργικότητα των κλάσεών σου). Απλά, θέλει άσκηση.&lt;br&gt;</description></item><item><title>Απ: Απορία για OOP Inheritance vs Interface</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/69018.aspx</link><pubDate>Thu, 26 Jan 2012 08:36:43 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:69018</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/69018.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=30&amp;PostID=69018</wfw:commentRss><description>&lt;P&gt;Για ξεκίνημα διάβασε αυτό&amp;nbsp;&lt;A href="http://www.dotnetzone.gr/cs/blogs/mkelaiditis/pages/9421.aspx"&gt;http://www.dotnetzone.gr/cs/blogs/mkelaiditis/pages/9421.aspx&lt;/A&gt;&amp;nbsp;και τα ξαναλέμε στη συνέχεια...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Απορία για OOP Inheritance vs Interface</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/69017.aspx</link><pubDate>Thu, 26 Jan 2012 07:05:33 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:69017</guid><dc:creator>Kostis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/69017.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=30&amp;PostID=69017</wfw:commentRss><description>&lt;P&gt;Φιλαράκια είμαι καινούργιος στο Object Oriented Programming και θα&amp;nbsp;ήθελα την βοήθειά σας στο εξής.&lt;/P&gt;
&lt;P&gt;Διαβάζω διάφορα περί Inheritance (το οποίο και καταννοώ) και&amp;nbsp;για interface (Isomething, το οποίο δεν καταννοώ).&lt;/P&gt;
&lt;P&gt;Μπορεί κάποιος να μου εξηγήσει την διαφορά, πότε χρησιμοποιώ το&amp;nbsp;inheritance&amp;nbsp;και πότε το dInterface?&lt;/P&gt;
&lt;P&gt;Ευχαριστώ πολύ&amp;nbsp;&lt;/P&gt;</description></item></channel></rss>