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");
}
}
Инчунин, метавон амалҳои навро бо эҷоди синфҳои нав барои меҳмонон илова кард, бе тағир додани синфҳои унсурҳо.