这是什么设计模式?

5

我有几个执行后台任务的类,可能会引发异常。它们都实现了以下接口:

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

当后台任务中的一个引发异常时,所有的ExceptionHandler都会被通知到该异常,以便可以适当地处理/传播。

你会如何称呼这个接口?ExceptionHandlerObservable(不太好)?


ExceptionHandlerObservable出了什么问题? - Jon Lin
4
为什么有些人要投票将其标记为“不相关话题”?请不要这样做,这是一个合理的问题。 - peter.murray.rust
我相信如果它被关闭,会有足够的人投票重新打开它。 - Kiril
5个回答

12

这似乎是应用于异常处理的观察者模式。因此,接口可能会被命名为ExceptionObservable或类似的名称。


5
ExceptionHandler 可以改名为 ExceptionObserver,这样可以暗示它是 Observable 模式的第二部分。 - Jakub Zaverka

3
如果把抛出异常视为一种事件,那么这可能与EventBroker设计模式接近。也许可以称之为ExceptionBroker。

我喜欢这个想法,但它似乎与网络消息中的单例模式相关联,可能会误导。 - assylias

0

把它命名为 IObservableException


2
最后一部分是不必要的。 - mellamokb
哈哈,这真是一个非常好的观点!难以相信大众现在将无法得到启迪! - Timmerz
1
我很想给这个贴贴上-1。这两个都不符合Java的命名规范(看起来更像是C#?),而且第二个显然是错误的建议。幸运的是,我认为提问者不会采纳这个建议,所以没有任何风险。 - ruakh
随意吧,这只是我的观点。毕竟我在C#的世界里。 :-) - Timmerz

0

我会把它命名为“HandlesExceptions”之类的东西。


命名是主观的,但我相信将接口命名为“HandlesExceptions”并不是很好。 - Kiril
1
补充@Lirik的观点,接口通常在动词“implements”之后编写,因此名称应该是形容词/名词,而不是动词。 - mellamokb
1
实际上,它不会“处理”异常,而是“引发”异常,这些异常可以由另一个外部类处理。 - Heinzi
或者它处理它们。 - mellamokb

-1
就像IDisposable和ICloneable一样,这个类可以被命名为IExceptionHandlerObservable。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接