我正在創建接口和抽象類,它們代表了SMS,email,twitter,xml等短文本消息的消息傳遞框架。我想知道應該在哪裏放置消息驗證代碼。我應該在哪裏放驗證碼?
事情是,我只寫超類和接口,所以我沒有把實際的實現,我只是把掛鉤,讓其他人來驗證消息的內容。我看到它的方式,我可以用幾種方法做到:
在抽象超類「消息」中,有一個抽象方法'isValid'。對此的一個變體是在調用Message構造函數時調用isValid,如果消息格式不正確,則拋出MalformedMessageException。
在傳輸層,在發送之前,驗證消息。我會有一個send(Message)方法,它在發送之前立即調用isValid(Message)方法。
擁有一個帶有靜態方法isValid(Message)的單例消息驗證程序,該程序在某個點被調用。
我確定還有其他的選擇,我錯過了。目前,我傾向於第一個,但我覺得在應該是域對象的驗證代碼中感覺不對。
那麼你是否說我應該依靠這個框架的實現者在消息創建之前驗證消息?或者你是否說我應該在第一個選項上使用一些變體,將驗證代碼拉出,也許在MessagingService對象本身中? – DLaw
在創建之前驗證。總是。消息對象必須是有效的;他們不能被問及他們是否有效。不應該存在,如果他們是無效的。 –
你的編輯對我來說很有意義。謝謝! – DLaw