此處的對象是更新UI。我通常在客戶端執行此操作,但此應用程序使用後面的代碼。無論如何,我的問題是我試圖清理這些如果其他陳述,我認爲戰略模式可能是適當的。我不需要爲我完成所有的事情,但如果你可以給我一些指針來開始。我是否首先創建一個接口,然後每個策略實現接口?泛型在這裏有用嗎?界面中應該有哪些類型的方法?任何讓我走的東西將非常感激。重構幫助 - 策略模式
if (someObject.Status == 'A') {
btnRecordCall.Enabled = false;
btnAddMailOrStatusAction.Enabled = false;
btnPayments.Enabled = false;
btnAddressMaint.Enabled = false;
btnFilter.Enabled = false;
btnAddCoverage.Enabled = false;
btnPolicyForms.Enabled = false;
lblIsArchived.Text = "********** THIS CLAIM HAS BEEN ARCHIVED **********";
} else if (someObject.Status == 'D') {
btnRecordCall.Enabled = false;
btnAddMailOrStatusAction.Enabled = false;
btnPayments.Enabled = false;
btnAddressMaint.Enabled = false;
btnFilter.Enabled = false;
btnAddCoverage.Enabled = false;
btnPolicyForms.Enabled = false;
lblIsArchived.Text = "- De-archive Request Pending";
} else {
btnRecordCall.Enabled = true;
btnAddMailOrStatusAction.Enabled = true;
btnPayments.Enabled = true;
btnAddressMaint.Enabled = true;
btnFilter.Enabled = true;
btnAddCoverage.Enabled = true;
btnPolicyForms.Enabled = true;
lblIsArchived.Text = "";
}
感謝, 〜CK
謝謝斯坦。在實現中的execute方法中,如何獲得對頁面控件的引用?我是否通過推薦網頁並執行findcontrol('someId')?或者,還有更好的方法? – Hcabnettek 2009-07-21 16:44:31
是的,你可以傳遞一個引用到頁面本身,然後做同樣的事情你以前做的事情,即page.lblIsArchived.Text =「」;等等。你可以在構造函數或Execute方法中傳遞頁面的引用。隨你便。 – 2009-07-21 17:03:59