Паттерн: Посетитель (Visitor)
Фрагмент: элементы [java]
  1. package visitor.ex;
  2.  
  3. public interface Element {
  4. void Accept(Visitor v);
  5. }
  6.  
  7. class ElementA implements Element {
  8.  
  9. public void Accept(Visitor v) {
  10. v.VisitElementA(this);
  11. }
  12. }
  13.  
  14. class ElementB implements Element {
  15.  
  16. public void Accept(Visitor v) {
  17. v.VisitElementB(this);
  18. }
  19.  
  20. }
  21.