Эти два интерфейса находятся в ядре шаблона: < /p>
Код: Выделить всё
interface CarElement {
void accept(CarElementVisitor visitor);
}
interface CarElementVisitor {
void visit(Body body);
void visit(Car car);
void visit(Engine engine);
void visit(Wheel wheel);
}
является ли это обязательным для методов в этих интерфейсах возвращать void или они могут вернуть другие результаты? < /p>
В примере в Википедии Одним из посетителей является CarelementPrintVisitor. В каждом его методах написания консоли случается. < /P>
Код: Выделить всё
class CarElementPrintVisitor implements CarElementVisitor {
@Override
public void visit(Body body) {
System.out.println("Visiting body");
}
..
}
Код: Выделить всё
interface CarElement {
String accept(CarElementVisitor visitor);
}
interface CarElementVisitor {
String visit(Body body);
String visit(Car car);
String visit(Engine engine);
String visit(Wheel wheel);
}
- Почему мне не следует этого делать?Обязательно ли это чтобы методы в интерфейсах были недействительными методами в шаблоне посетителя?
Подробнее здесь: https://stackoverflow.com/questions/793 ... or-pattern
Мобильная версия