2012-03-27 90 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