Обязательно ли методы посещения возвращать пустоту в схеме посетителей?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Обязательно ли методы посещения возвращать пустоту в схеме посетителей?

Сообщение Anonymous »

Это пример Java схемы посетителя в Википедии: < /p>
Эти два интерфейса находятся в ядре шаблона: < /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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»