Değerli Java dostları,

Bugünkü yazımda visitor design pattern değinmek istiyorum. Aslında basit bir amacı var, o da şu; var olan sınıfların hiyerarşik yapılarını ve mevcut yapılarını değiştirmeden yeni metotlar eklemek. Yeni metotlarımız visitor sınıfı üzerinde tanımlanır ve mevcut sınıflar kendilerini bu visitor sınıfa parametre olarak aktarıp gerekli işlemleri yaparlar. Hemen örneğimize bakalım.

package anajavatica.pattern.behavioral.visitor;public interface Place {

public void accept(Visitor visitor);

public String info();

}

package anajavatica.pattern.behavioral.visitor;public class Museum implements Place {

@Override
public void accept(Visitor visitor) {
visitor.visit(this);
}

@Override
public String info() {
return “Museum”;
}

}

package anajavatica.pattern.behavioral.visitor;public class Palace implements Place {

@Override
public void accept(Visitor visitor) {
visitor.visit(this);
}

@Override
public String info() {
return “Palace”;
}
}

package anajavatica.pattern.behavioral.visitor;public interface Visitor {

public void visit(Place place);

}

package anajavatica.pattern.behavioral.visitor;public class Student implements Visitor {

@Override
public void visit(Place place) {
System.out.println(“What a nice ” + place.info());
}

}

package anajavatica.pattern.behavioral.visitor;public class VisitorMain {

public static void main(String[] args) {

Visitor student = new Student();
Place museum = new Museum();
Place palace = new Palace();

museum.accept(student);
palace.accept(student);

}

}

 

Bol Java’ lı günler dileğiyle… 😀

No responses yet

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.