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 иштетилет");
}
}
Бул жерде жаңы операцияларды кошуу үчүн жаңы зыяратчылар класстарын түзүү керек, элементтер класстарын өзгөртпөстөн.