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

 

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

Πως μπορω να δωσω ολλες τις μεθοδους κάποιων κλάσσεων σε ενα interface;

Îåêßíçóå áðü ôï ìÝëïò angarato_surion. Τελευταία δημοσίευση από το μέλος angarato_surion στις 26-02-2006, 01:35. Υπάρχουν 11 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  25-02-2006, 13:19 10122

    Πως μπορω να δωσω ολλες τις μεθοδους κάποιων κλάσσεων σε ενα interface;

    Πως μπορω να δωσω ολλες τις μεθοδους κάποιων κλάσσεων σε ενα interface;
    Υδροβάση(Hydrobase)
    profiles :
    codeplex
    sourceforge
    google code

    Υλοποιώ εφαρμογές υπό πληρωμή απλώς επικοινωνήστε μαζί μου
  •  25-02-2006, 13:54 10124 σε απάντηση της 10122

    Απ: Πως μπορω να δωσω ολλες τις μεθοδους κάποιων κλάσσεων σε ενα interface;

    Μπορείς να δώσεις λίγο περισσότερες λεπτομέρειες ?
    Σταύρος Βαλσάμης
    Προγραμματιστής
  •  25-02-2006, 15:37 10127 σε απάντηση της 10124

    Απ: Πως μπορω να δωσω ολλες τις μεθοδους κάποιων κλάσσεων σε ενα interface;

    π.χ. ξερω οτι μπορεις να κληροδοτησεις σε μια κλάση καποια στοιχεια κάποιας άλλης κλάσης .

    η διαφορα σε αυτο ειναι οτι θελω ενα να κληροδοτησω τα στοιχεια της κλασης σε ενα interface.

    Θελω να δωσω την δυνατοτητα σε μια βιβλιοθηκη που εφτιαξα να δεχεται plugins τα οποια να χρησιμοποιουν τις μεθοδους του ιδιου του dll που θα τα φορτωνει γιανα κανουν καποια πιο συνθετη εργασια

    Υδροβάση(Hydrobase)
    profiles :
    codeplex
    sourceforge
    google code

    Υλοποιώ εφαρμογές υπό πληρωμή απλώς επικοινωνήστε μαζί μου
  •  25-02-2006, 15:55 10130 σε απάντηση της 10127

    Απ: Πως μπορω να δωσω ολλες τις μεθοδους κάποιων κλάσσεων σε ενα interface;

    (Δεν ξέρω αν έχω καταλάβει την ερώτηση).

    Το Interface δεν μπορεί να κληρονομήσει Members από Class. Μόνο από άλλο Interface. Επίσης δεν μπορείς να έχεις λειτουργικότητα σε ένα Interface.

    Για να έχεις σε 2 ή περισσότερα Classes τα ίδια members πρέπει να δημιουργήσεις ένα Interface με τα members που θέλεις και να κάνεις Implementation του Interface σε κάθε ένα από αυτά τα Class όπου συμπληρώνεις το Functionality. Με αυτό τον τρόπο "υποχρεώνεις" κάθε ένα από αυτά τα Classes να έχουν το λιγότερο τα συγκεκριμένα Members (αυτά του Interface)


    Σταύρος Βαλσάμης
    Προγραμματιστής
  •  25-02-2006, 15:58 10131 σε απάντηση της 10130

    Απ: Πως μπορω να δωσω ολλες τις μεθοδους κάποιων κλάσσεων σε ενα interface;

    Για μια εισαγωγή στα Interfaces, να παραπέμψω και στο εξαιρετικό άρθρο που έχει δημοσιεύσει στο Blog του ο Μανος (kelman): http://www.dotnetzone.gr/cs/blogs/mkelaiditis/articles/9421.aspx

     


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  25-02-2006, 17:49 10136 σε απάντηση της 10130

    Απ: Πως μπορω να δωσω ολλες τις μεθοδους κάποιων κλάσσεων σε ενα interface;

    μα θελω σε ολες τις κλασεις να τρεχει ο ιδιος κωδικας...
    Υδροβάση(Hydrobase)
    profiles :
    codeplex
    sourceforge
    google code

    Υλοποιώ εφαρμογές υπό πληρωμή απλώς επικοινωνήστε μαζί μου
  •  25-02-2006, 18:48 10138 σε απάντηση της 10122

    Απ: Πως μπορω να δωσω ολλες τις μεθοδους κάποιων κλάσσεων σε ενα interface;

    Τότε χρειάζεσαι abstract κλάσεις (δεν είμαι σίγουρος πως ονομάζονται στην VB).
    Μην αφήνετε τα media να σας "ταΐζουν"!
  •  25-02-2006, 18:59 10140 σε απάντηση της 10138

    Απ: Πως μπορω να δωσω ολλες τις μεθοδους κάποιων κλάσσεων σε ενα interface;

    Να το πούμε αλλιώς:

    Το interface είναι ένα "συμβόλαιο" που σου υποδεικνύει πώς θα έπρεπε να υλοποιήσεις methods και properties των κλάσεών σου. Οταν ορίζεις ένα interface, στην ουσία δεν γράφεις κώδικα για κάποια κλάση, απλά καθορίζεις τις "υπογραφες".

    Από την άλλη μεριά, όταν θέλεις μια κλάση να κληρονομεί κώδικα από μια άλλη (πρόσεξες το "κληρονομεί"; :) ) τότε έρχεται στο φως η έννοια του inheritance.
    Ετσι, μπορείς να φτιάξεις μια κλάση που θα περιέχει το βασικό σου κώδικα (η λεγόμενη base class), και κλάσεις οι οποίες "κληρονομούν" από αυτήν, έχοντας το δικαίωμα να χρησιμοποιήσουν όλες τις μεθόδους και τα properties της και φυσικά χωρίς να περιορίζονται εκεί.

    Η base class σου μπορεί να είναι και η ίδια χρησιμοποιήσιμη (οπότε μιλάμε για μια κανονική κλάση) ή abstract (που σημαίνει οτι μόνο οι κλάσεις που κληρονομούν από αυτή θα μπορούν να χρησιμοποιηθούν). Στη δεύτερη περίπτωση όντως μιλάμε για abstract κλάση, η οποία στη VB πρέπει να δηλώνεται με τη λέξη-κλειδί MustInherit.

    Πρεπει να γράψουμε κάποιο άρθρο για αυτά, γιατί είναι ένα θέμα που φαντάζομαι οτι θα ήθελαν και άλλοι συνάδελφοι ξεκάθαρες απόψεις. Σιγουρα μέσα από ένα post μπορεί να μην έχω την άνεση να αναπτύξω σε όλη του την έκταση το θέμα του inheritance και τη διαφορά από τα interfaces...
    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  25-02-2006, 19:00 10141 σε απάντηση της 10138

    Απ: Πως μπορω να δωσω ολλες τις μεθοδους κάποιων κλάσσεων σε ενα interface;

    ναι αλλα plugin μπορει να γινει με χρηση κλασσεων;
    δεν ξερω vb.net παρα μονο c# και δεν τα παω και με την κληρονομηκοτητα των κλασσεων...
    Υδροβάση(Hydrobase)
    profiles :
    codeplex
    sourceforge
    google code

    Υλοποιώ εφαρμογές υπό πληρωμή απλώς επικοινωνήστε μαζί μου
  •  25-02-2006, 19:28 10144 σε απάντηση της 10140

    Απ: Πως μπορω να δωσω ολλες τις μεθοδους κάποιων κλάσσεων σε ενα interface;

     cap wrote:
    Να το πούμε αλλιώς:

    Το interface είναι ένα "συμβόλαιο" που σου υποδεικνύει πώς θα έπρεπε να υλοποιήσεις methods και properties των κλάσεών σου. Οταν ορίζεις ένα interface, στην ουσία δεν γράφεις κώδικα για κάποια κλάση, απλά καθορίζεις τις "υπογραφες".

    Από την άλλη μεριά, όταν θέλεις μια κλάση να κληρονομεί κώδικα από μια άλλη (πρόσεξες το "κληρονομεί"; :) ) τότε έρχεται στο φως η έννοια του inheritance.
    Ετσι, μπορείς να φτιάξεις μια κλάση που θα περιέχει το βασικό σου κώδικα (η λεγόμενη base class), και κλάσεις οι οποίες "κληρονομούν" από αυτήν, έχοντας το δικαίωμα να χρησιμοποιήσουν όλες τις μεθόδους και τα properties της και φυσικά χωρίς να περιορίζονται εκεί.

    Η base class σου μπορεί να είναι και η ίδια χρησιμοποιήσιμη (οπότε μιλάμε για μια κανονική κλάση) ή abstract (που σημαίνει οτι μόνο οι κλάσεις που κληρονομούν από αυτή θα μπορούν να χρησιμοποιηθούν). Στη δεύτερη περίπτωση όντως μιλάμε για abstract κλάση, η οποία στη VB πρέπει να δηλώνεται με τη λέξη-κλειδί MustInherit.

    Πρεπει να γράψουμε κάποιο άρθρο για αυτά, γιατί είναι ένα θέμα που φαντάζομαι οτι θα ήθελαν και άλλοι συνάδελφοι ξεκάθαρες απόψεις. Σιγουρα μέσα από ένα post μπορεί να μην έχω την άνεση να αναπτύξω σε όλη του την έκταση το θέμα του inheritance και τη διαφορά από τα interfaces...

    οντως γιατι δεν τα παω και πολυ καλα...


    αν εβαζα μεσα στο interface για το plugin sdk τις κλασεις μου τι θα δουλευε καλα ή χαλια;

    Υδροβάση(Hydrobase)
    profiles :
    codeplex
    sourceforge
    google code

    Υλοποιώ εφαρμογές υπό πληρωμή απλώς επικοινωνήστε μαζί μου
  •  26-02-2006, 00:20 10147 σε απάντηση της 10144

    Απ: Πως μπορω να δωσω ολλες τις μεθοδους κάποιων κλάσσεων σε ενα interface;

    Μου φαίνεται δεν διάβασες τα δύο άρθρα που σε παρέπεμψα στο post σου Πως μπορω να κάνω εμα πρόγραμμα να δέχεται την δημιουτγρία plugins; Γενικά, δεν είναι και τόσο εύκολο θέμα, ωστόσο αν τα διαβάσεις και δεις πως δουλεύουν τα παραδείγματα, θα βγάλεις άκρη...


    Vir prudens non contra ventum mingit
  •  26-02-2006, 01:35 10149 σε απάντηση της 10147

    Απ: Πως μπορω να δωσω ολλες τις μεθοδους κάποιων κλάσσεων σε ενα interface;

    Αυτο θα μπορουσε να γινει αν αντι για Interface χρησιμοπουσαμε classes;
    Υδροβάση(Hydrobase)
    profiles :
    codeplex
    sourceforge
    google code

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