Эффективный способ справиться с нулем в шаблоне посетителя - PullRequest
1 голос
/ 26 февраля 2011

Представьте, что у вас есть коллекция объектов и вы используете шаблон «Посетитель» - как бы вы обрабатывали нуль, извлеченный из коллекции, наиболее элегантно?

Ответы [ 2 ]

4 голосов
/ 22 марта 2011

Либо ваша проблема требует какого-то особого типа посещаемых объектов, либо вы пытаетесь наложить слишком много обязанностей на ваш шаблон посетителей.Если у вас действительно есть значимый объект, который нельзя посетить, попробуйте Null Object pattern.

public class NullElement implements Element {

    public void accept(ElementVisitor visitor) {
        // noop
    }
}
1 голос
/ 26 февраля 2011

Я не вижу другого выхода, кроме как поставить if (element != null) element.accept(visitor);

Если вы используете гуаву или что-то еще, вы, конечно, можете сделать filter, но это кажется излишним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...