Junior — Middle
Μπορείτε να εξηγήσετε την έννοια του μοτίβου 'επισκέπτης' και την εφαρμογή του στον σχεδιασμό προγραμμάτων;
sobes.tech AI
Απάντηση από AI
Το μοτίβο «επισκέπτης» (Visitor) επιτρέπει τον διαχωρισμό των αλγορίθμων από τα αντικείμενα στα οποία εκτελούνται. Ορίζει μια λειτουργία που εκτελείται πάνω στα στοιχεία μιας δομής αντικειμένων, επιτρέποντας την προσθήκη νέων λειτουργιών χωρίς να αλλάζουν οι κλάσεις των στοιχείων.
Εφαρμογές:
- Όταν χρειάζεται να εκτελεστούν διαφορετικές λειτουργίες σε αντικείμενα μιας πολύπλοκης δομής.
- Όταν συχνά προστίθενται νέες λειτουργίες, αλλά η δομή των αντικειμένων παραμένει σταθερή.
Παράδειγμα σε C#:
interface IVisitor {
void Visit(ElementA element);
void Visit(ElementB element);
}
interface IElement {
void Accept(IVisitor visitor);
}
class ElementA : IElement {
public void Accept(IVisitor visitor) {
visitor.Visit(this);
}
}
class ElementB : IElement {
public void Accept(IVisitor visitor) {
visitor.Visit(this);
}
}
class ConcreteVisitor : IVisitor {
public void Visit(ElementA element) {
Console.WriteLine("Επεξεργασία ElementA");
}
public void Visit(ElementB element) {
Console.WriteLine("Επεξεργασία ElementB");
}
}
Εδώ, μπορούν να προστεθούν νέες λειτουργίες δημιουργώντας νέες κλάσεις επισκεπτών, χωρίς να αλλάξουν οι κλάσεις των στοιχείων.