这里的目的是更新 UI。我通常在客户端上执行此操作,但是此应用程序使用隐藏的代码。无论如何,我的问题是我正在尝试清理这些 if else 语句,并且我认为策略模式可能是合适的。我不需要为我做所有的事情,但如果你能给我一些指导,让我继续前进。我是否要先创建一个接口(interface),然后每个策略都实现该接口(interface)?泛型在这里有用吗?接口(interface)中应该包含哪些类型的方法?任何能让我继续前进的事情都将非常感激。
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
最佳答案
如果所有按钮都获得相同的启用,无论状态如何,如您的示例所示,那么我会将其隐藏在按钮列表中,然后迭代它们。然后你的策略参数可以归结为一个 bool 值和一个字符串——无论如何,做到这一点都很容易。如果它的复杂性更大,那么实现设置控件的接口(interface)的不同类将是有序的,可能具有保存整体逻辑的抽象父类(super class)。
关于design-patterns - 重构帮助-策略模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1160132/