Πίνακας περιεχομένων:
Ορισμός - Τι σημαίνει Shim;
Το Shim, στο C #, είναι μια κλάση προτύπου που προέρχεται από μια κλάση βάσης με παράγωγες κλάσεις που κληρονομούν τα δεδομένα και τη συμπεριφορά της βασικής κλάσης και διαφέρουν μόνο στον τύπο. Η παράγωγη κλάση της κατηγορίας shim επαναχρησιμοποιεί την υλοποίηση που παρέχεται από την κατηγορία shim.
Το Shim μπορεί να σχεδιαστεί ώστε να λειτουργεί ως ένα λεπτό στρώμα συμβατότητας, το οποίο μπορεί να επιλύσει τα προβλήματα συμβατότητας που ενδέχεται να προκύψουν κατά την ανάπτυξη νεώτερων εκδόσεων εφαρμογών. Χρησιμοποιείται επίσης για την εκτέλεση εφαρμογών σε πλατφόρμες λογισμικού για τις οποίες δεν σχεδιάστηκαν αρχικά.
Σε γενικές γραμμές, η κλάση shim χρησιμοποιείται κυρίως για να παρέχει πρόσβαση στη λειτουργικότητα μόνο μέσω των παράγωγων κλάσεων της κατηγορίας shim. Αυτή η προσέγγιση βοηθά στην παροχή επεκτασιμότητας κώδικα. Αποτρέπει επίσης την επανάληψη του κώδικα και αποφεύγει τα σφάλματα λόγω αποκοπής και επικόλλησης. Αυτό μπορεί να σημαίνει χαμηλότερο κόστος και λιγότερη συντήρηση.
Η Techopedia εξηγεί το Shim
Μια κλάση shim είναι μια κλάση προτύπου που παίρνει τύπο ως παράμετρο. Μπορεί να χρησιμοποιηθεί σε οποιοδήποτε επίπεδο μιας αλυσίδας κληρονομιάς και μπορεί να προσφέρει καλύτερη συντήρηση και επέκταση της ιεραρχίας.
Μπορεί να εφαρμοστεί μια κλάση shim χρησιμοποιώντας μεθόδους συγκράτησης και συσσωμάτωσης. Στην περίπτωση μιας προσέγγισης συγκράτησης, η τάξη shim περνάει τις κλήσεις της για την εκ νέου υλοποίηση της διεπαφής για να παρέχει πρόσθετη συμπεριφορά. Στη μέθοδο συσσωμάτωσης, η διεπαφή με την εσωτερική κλάση μεταφέρεται στο εξωτερικό αντικείμενο και δεν υπάρχει εξειδίκευση της συμπεριφοράς του εσωτερικού αντικειμένου.
Για παράδειγμα, το Wine είναι ένα shim που επιτρέπει σε πολλές εφαρμογές των Windows να εκτελούνται σε λειτουργικά συστήματα όπως Linux, Solaris κ.λπ.
Σε περιπτώσεις όπου η κλήση σε μη διαχειριζόμενο κώδικα πρέπει να προωθηθεί από τον διαχειριζόμενο κώδικα μετά από κάποιες αρχικοποιήσεις, η κλάση shim μπορεί να χρησιμοποιηθεί ως κλάση περιτυλίγματος. Αυτή η κλάση shim μπορεί να δημιουργηθεί ως μια πιο γενική κλάση που δεν μπορεί να χρησιμοποιηθεί άμεσα, αλλά επιτρέπει τη δημιουργία παράγωγων κλάσεων που έχουν κοινή λειτουργικότητα. Βοηθά στην οικοδόμηση ενός πλαισίου στο οποίο η κλάση shim σχηματίζει τη σύνδεση μεταξύ της κλάσης βάσης που περιέχει κοινές λειτουργίες και των παράγωγων κλάσεων που έχουν προσαρμοσμένες λειτουργίες.
Μια παραλλαγή COM που συνδέει μια εφαρμογή κεντρικού υπολογιστή του Microsoft Office και διαχειριζόμενη επέκταση βοηθά στην παροχή ασφάλειας και απομονώνει πολλαπλές επεκτάσεις του Microsoft Office.
Ο ορισμός αυτός γράφτηκε στο πλαίσιο του C #