Целью настоящего является обновление пользовательского интерфейса. Обычно я делаю это на клиенте, однако это приложение использует код позади. В любом случае, мой вопрос заключается в том, что я пытаюсь очистить эти утверждения if else, и я думал, что шаблон стратегии может быть уместным. Мне не нужно, чтобы все было сделано для меня, но если бы вы могли дать мне пару указателей, чтобы идти. Сначала я создаю интерфейс, а затем каждая стратегия реализует интерфейс? Здесь полезны дженерики? Какие типы методов должны быть в интерфейсе? Любая вещь, которая заставит меня идти, будет очень оценена.Помощь рефактору - шаблон стратегии
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 = "";
}
Спасибо, ~ ск
Спасибо Стэн. В методе выполнения в реализациях, как мне получить ссылки на элементы управления страницей? Я передаю ссылки на страницу и выполняю findcontrol ('someId')? или есть лучший способ? – Hcabnettek
Да, вы можете передать ссылку на страницу, а затем сделать то же самое, что делали до того, как я нарисовал страницу.lblIsArchived.Text = ""; и т. д. Вы можете передать ссылку на страницу в конструкторе или в методе Execute. тебе решать. –