在ETL應用我的工作,我們有三個基本過程:如何根據狀態限制對班級數據的訪問?
- 驗證並從第三方文件中接收到的值在我們的系統
- 匹配值分析客戶信息的XML文件在我們的系統
- 加載客戶數據
這裏的問題是,我們可能需要顯示任何或所有上述國家的客戶信息的內部用戶,並且數據在客戶類,將從來沒有b在我們的系統中匹配值之前填充(步驟2)。出於這個原因,我想有值,甚至無法使用時,客戶是在這種狀態下被訪問,我想必須避免一些重複的邏輯無處不在,如:
if (customer.IsMatched) DisplayTextOnWeb(customer.SomeMatchedValue);
我首先想到的因爲這是在Customer的頂部添加一些接口,只會暴露當前狀態的屬性和行爲,然後只處理這些接口。這種方法的問題是,似乎沒有好的方法來從ICustomerWithNoMatchedValues移動到ICustomerWithMatchedValues沒有做直接轉換,等等......(或者至少我找不到一個)。
我不能第一個遇到過這個問題,你通常如何處理這個問題?
作爲最後的警告,我想這個解決方案提前發揮好與FluentNHibernate :)
謝謝...