2
這裏是捕捉。我有一個名爲RegisterDate
的業務對象。像往常一樣,商業規則說,一旦設定,就不能改變。如何在業務規則屬性可訪問性時測試業務規則?
我首先想到的是將該字段作爲屬性實現並將setter定義爲受保護的,防止用戶在創建對象後使用(並設置)該setter。但經過一段時間後,我讓我偷偷摸摸地看到一個財產訪問規則中的商業規則。
我的第二個想法是讓屬性setter公開,在設置時實現一個異常,這使得業務規則非常明確。每當有人試圖設置它時,都會出現一個測試用例,希望該屬性拋出異常。
嗯,但是這是一個避免行爲的樣板,爲什麼不讓這個東西受到保護,甚至避免在代碼的其他部分濫用?但後來我想知道,如果另一位開發人員意外更改了屬性可訪問性並將其重新公開,並且業務對象的用戶開始使用違反業務規則的此字段,該怎麼辦?
這種情況的最佳方法是什麼?你會如何解決這個問題?
http://stackoverflow.com/questions/1079292/should-i-use-set-once-variables或http://stackoverflow.com/questions/839788/is-there-a-way-設置一個屬性一次只在一個c – 2011-02-08 14:42:12