2012-03-27 13 views
5

Tengo algunas clases que realizan tareas en segundo plano que pueden generar excepciones. Todos ellos implementan la interfaz siguiente:¿Qué es este patrón?

public interface HowDoYouCallMe { 
    void addExceptionHandler(ExceptionHandler handler); 
} 

Cuando una de las tareas en segundo plano lanza una excepción, todos los ExceptionHandlers se les informa de la excepción de modo que pueda ser manejado adecuadamente/propaga.

¿Cómo llamarías a la interfaz? ExceptionHandlerObservable (no es genial)?

+0

¿Qué pasa con 'ExceptionHandlerObservable'? –

+4

¿Por qué la gente vota para cerrar como Fuera de tema? Por favor, no, es una pregunta razonable –

+0

. Estoy seguro de que si se cierra habrá suficiente gente para votar para reabrirla. – Kiril

Respuesta

12

Parece que el Observer pattern se aplica al manejo de excepciones. Entonces la interfaz probablemente se llamaría ExceptionObservable o algo por el estilo.

+5

Luego, el manejador de excepción podría renombrarse como ExceptionObserver, de modo que implique que es la segunda parte del patrón Observable. –

0

Llámala IObservableException.

+2

La última parte fue innecesaria. – mellamokb

+0

¡ja ja, fue un muy buen punto! no puedo creer que las masas ahora no se iluminarán! – Timmerz

+1

Estoy tentado de -1 esto. Ninguno de los dos cumple con las convenciones de nomenclatura de Java (se parecen más a C#?), Y el segundo es claramente un mal consejo. Afortunadamente, no creo que haya ningún riesgo de que el OP lo tome. – ruakh

0

yo sólo diría que es algo así como "HandlesExceptions"

+0

Nombrar cosas es subjetivo, pero estoy bastante seguro de que llamar a una interfaz 'HandlesExceptions' no es muy bueno. – Kiril

+1

Para agregar al punto de @Lirik, la interfaz generalmente se escribe después del verbo 'implements', por lo que el nombre debe ser un adjetivo/sustantivo, no un verbo – mellamokb

+1

En realidad, * no * maneja * excepciones, * plantea * excepciones que puede ser manejado por otra clase externa. – Heinzi

3

si se piensa en una excepción de ser lanzado como un evento, entonces quizás éste es cerca de la EventBroker design pattern. Tal vez puedas llamar a este un ExceptionBroker.

+0

Me gusta la idea, pero parece estar vinculada a patrones de singleton en la mensajería de red, por lo que puede ser engañosa. – assylias

-1

Al igual que IDisposable y ICloneable, esta clase puede ser nombrado como IExceptionHandlerObservable

Cuestiones relacionadas