В чем смысл метода accept () в шаблоне посетителя?

Сейчас много говорят об отделении алгоритмов от классов. Но одна вещь остается в стороне и не объясняется. Они используют посетителя вот так abstract class Expr { public <T> T accept(Visitor<T> visitor) {visitor.visit(this);} } class ExprVisitor extends Visitor{ public Integer...