Шаблон проектирования для «повторной попытки» логики, которая не удалась?

Я пишу некоторую логику повторного подключения, чтобы периодически пытаться установить соединение с удаленной конечной точкой, которая вышла из строя. По сути,код выглядит так:

public void establishConnection() {
    try {
        this.connection = newConnection();
    } catch (IOException e) {
        // connection failed, try again.
        try { Thread.sleep(1000); } catch (InterruptedException e) {};

        establishConnection();
    }
}

Я много раз решал эту общую проблему с помощью кода, похожего на приведенный выше, но в значительной степени неудовлетворен результатом. Существует ли шаблон проектирования, предназначенный для решения этой проблемы?

52
задан Naftuli Kay 27 July 2012 в 06:19
поделиться