Сколько логики «правильно» вкладывать в Callable? - PullRequest
3 голосов
/ 25 января 2009

Я довольно часто использую вызываемые элементы и натолкнулся на вопрос, который меня раздражает:

Допустим, что для запуска функции foo () сначала нужно выполнить пару проверок.

Если вы 1. Вставьте чеки как часть Callable:

class A implements Callable<Long> {
...
public Long call() {
    check1();
    check2();
    return (run()); 
}
  1. ИЛИ, вставить всю эту логику в другой класс (ALogic) и использовать Callable просто оболочку для исполнителя? class A implements Callable { <br> ...<br> public Long call() {<br> ALogic aLogic = new ALogic();<br> return (aLogic.run()); <br> }

Как вы думаете, за и против? Что вы обычно предпочитаете?

Ответы [ 3 ]

1 голос
/ 25 января 2009

Мой общий совет при реализации интерфейсов обратного вызова [ключевое слово Java] заключается в том, чтобы сделать интерфейс [ключевое слово не из Java] подходящим для вызываемого типа. Как правило, в анонимном внутреннем классе должно быть не так много, а больше, чем просто переадресация вызова.

Кроме того, как правило, нехорошо иметь объект, который сконструирован, и тогда для него вызывается только один метод. Сделайте его статическим методом (который, возможно, в свою очередь может создать объект через закрытый конструктор и запустить его).

1 голос
/ 25 января 2009

Что вы считаете более простым или понятным? Я предлагаю вам сделать это.

0 голосов
/ 25 января 2009

Я обычно предпочитаю просто переадресовать обратный вызов закрытому методу класса включения. Это исключает ссылку «this», которая просто указывает на анонимный внутренний класс, который довольно бесполезен.

...