2012-09-28 43 views
0

我在考慮使用Web服務作爲處理程序來實現責任鏈模式的平臺中立(即不是.NET MEF)技術。我希望能夠通過部署新服務來添加更多的CoR處理程序,而不是編譯新的CoR代碼,只需更改配置信息即可。看起來,挑戰將是管理有關可用處理程序的元數據,並確保處理程序符合接口。用服務實現責任鏈

我的問題:我如何能保證安全的任何想法: 1. Web服務實現 2. Web服務實現的基類行爲的接口,比如調用繼任

因爲,在編譯的代碼,我可以具有類型安全性,因此知道任何處理程序都來自抽象基類,以確保我想要的接口和行爲。這似乎在服務世界中缺失。

+1

那麼你的問題是什麼? – Cratylus

+0

看到我上面的漫遊。 –

回答

0

這似乎是一個有效的問題,但相當簡單。

即使您以後在運行時加載代碼,原始代碼以前從未見過,仍然可以保護輸入系統。

我認爲這裏的首選方法是像一個屬性文件與實施者列表(你的鏈)。然後在代碼中,您將不得不有一種方法來在運行時實例化每個處理程序的實例以構建鏈。當你構造實例時,你將不得不檢查它的類型。例如,在Java中,它將採用instanceof(通常是可憎的,但通過加載場景)或isAssignableFrom的形式。在Objective C中,它是conformsToProtocol。

如果沒有,它不能使用,你可以向控制檯吐出一個錯誤。