2012-03-27 91 views
5

我有几个类执行可能会引发异常的后台任务。他们都实现了以下接口:这是什么模式?

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

当后台任务之一将引发异常,所有的ExceptionHandlers被告知,以便它能够得到妥善处理/传播的异常。

你会怎么称呼界面? ExceptionHandlerObservable(不是很好)?

+0

出了什么问题'ExceptionHandlerObservable'? – 2012-03-27 17:46:03

+4

为什么人们投票关闭作为Off-topic?请不要,这是一个合理的问题 – 2012-03-27 17:50:24

+0

我确定如果它关闭,将有足够的人投票重新打开它。 – Kiril 2012-03-28 04:34:55

回答

12

它看起来像应用于异常处理的Observer pattern。所以界面可能会被命名为ExceptionObservable或类似的东西。

+5

然后ExceptionHandler可以重命名为ExceptionObserver,这意味着它是Observable模式的第二部分。 – 2012-03-27 18:10:23

0

称之为IObservableException

+2

最后一部分是不必要的。 – mellamokb 2012-03-27 17:46:46

+0

大声笑,这是一个非常好的点!!!不敢相信群众现在不会开悟! – Timmerz 2012-03-27 17:47:45

+1

我很想这-1。这两者都不符合Java命名约定(它们看起来更像C#?),而第二个显然是不好的建议。幸运的是,我认为OP不会承担任何风险。 – ruakh 2012-03-27 17:48:06

0

我只是把它像“HandlesExceptions”

+0

命名事物是主观的,但我很确定调用一个接口'HandlesExceptions'不是很好。 – Kiril 2012-03-27 17:48:50

+1

要增加@ Lirik的观点,界面通常写在动词'implements'之后,所以名字应该是形容词/名词,而不是动词 – mellamokb 2012-03-27 17:49:37

+1

实际上,它不处理异常,它引发异常这可以由另一个外部类来处理。 – Heinzi 2012-03-27 17:50:39

3

如果您认为异常被抛出作为一个事件,那么也许这是接近EventBroker design pattern。也许你可以调用这个ExceptionBroker。

+0

我喜欢这个主意,但它似乎与网络消息传递中的单例模式相关,因此可能会产生误导。 – assylias 2012-03-29 11:22:03

-1

就像IDisposable接口和ICloneable,这个类可以被命名为IExceptionHandlerObservable