Sobes.tech
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-ის დამუშავება");
    }
}

აქ ახალი ოპერაციების დამატება შესაძლებელია ახალი ვიზიტორების კლასების შექმნით, ელემენტების კლასების შეცვლის გარეშე.