c# Ziyaretçi Kodu Kullanıcılar için ziyaretçi kodu
Bu örnekte ElementAve `Eleman ElementB. IElement Yöntemi içeren her iki Acceptarabirim. Yöntem Accept, öğelerin bir ziyaretçiyi kabul etmesine izin verir.
Arayüz , her somut eleman için yöntemleri IVisitor tanımlar . Visit Bu örnekte, arayüzü ConcreteVisitor uygulayan sınıfa sahibiz IVisitor.
Yöntemdeki müşteri kodu, ( ve ) Mainöğelerinin ve ziyaretçinin ( ) örneklerini oluşturur. Daha sonra , ziyaretçiyi geçerek her öğedeki yöntemi çağırır . Elemanlar da her bir elemana özel gerekli işlemleri yapan ziyaretçi üzerinde uygun yöntemi çağırır.elementAelementBvisitorAcceptVisit
c# kodu
using System;
// The Visitor interface defines the Visit methods for each concrete element.
interface IVisitor
{
void Visit(ElementA elementA);
void Visit(ElementB elementB);
}
// The Element interface defines the Accept method for accepting a visitor.
interface IElement
{
void Accept(IVisitor visitor);
}
// Concrete Element A
class ElementA : IElement
{
public void Accept(IVisitor visitor)
{
visitor.Visit(this);
}
public void OperationA()
{
Console.WriteLine("Element A operation");
}
}
// Concrete Element B
class ElementB : IElement
{
public void Accept(IVisitor visitor)
{
visitor.Visit(this);
}
public void OperationB()
{
Console.WriteLine("Element B operation");
}
}
// Concrete Visitor
class ConcreteVisitor : IVisitor
{
public void Visit(ElementA elementA)
{
Console.WriteLine("ConcreteVisitor visits ElementA");
elementA.OperationA();
}
public void Visit(ElementB elementB)
{
Console.WriteLine("ConcreteVisitor visits ElementB");
elementB.OperationB();
}
}
// Client code
class Program
{
static void Main(string[] args)
{
// Create elements
var elementA = new ElementA();
var elementB = new ElementB();
// Create visitor
var visitor = new ConcreteVisitor();
// Accept the visitor
elementA.Accept(visitor);
elementB.Accept(visitor);
Console.ReadLine();
}
}
Bu, Ziyaretci kodu Css ile Visitor modelinin öğeler üzerinde gerçekleştirilen işlemleri öğe sınıflarından ayırmanıza nasıl olanak tanıdığını gösterir, genişletilebilirliği ve esnekliği destekler.
CSS Kodu
ConcreteVisitor visits ElementA Element A operation ConcreteVisitor visits ElementB Element B operation
Örnek Başka Kodlar Github
DemoKafanıza takılan yerler için yorumlar kısmından bana ulaşabilir ve sorularınızı sorabilirsiniz ve iletişim için burdan iletişim sayfasından iletişime geçebilirsiniz.
