工作在C#4.5。我的bellow語法很多,如果其他系列它似乎代碼氣味,想要一種方法來避免這種氣味。任何幫助都可以接受。謝謝如何避免重複,如果其他系列代碼的氣味
public bool CheckValidCustomer()
{
return _checkManager.IsCustomerPersonal(_customer) ? IsValidPersonalCustomer() : IsValidCompanyCustomer();
}
private bool IsValidCompanyCustomer()
{
if (_checkManager.IsValidFinancialInfo(_customer) == false)
{
ProcessMessage = "Please Check Financial Info.";
return false;
}
if (_checkManager.IsValidCompanyInfo(_customer) == false)
{
ProcessMessage = "Please Check Company Info.";
return false;
}
if (_checkManager.IsValidStakeHolderInfo(_customer) == false)
{
ProcessMessage = "Please Check Stake Holder Info.";
return false;
}
if (_checkManager.IsValidResponsiblePersonInfo(_customer) == false)
{
ProcessMessage = "Please Check Responsible person Info.";
return false;
}
if (_checkManager.IsValidScreeningInfo(_customer) == false)
{
ProcessMessage = "Please Check Screening Info .";
return false;
}
if (_checkManager.IsValidMyNumberUpload(_customer) == false)
{
ProcessMessage = "Please Check My Number Upload Info.";
return false;
}
if (_checkManager.IsValidIdUpload(_customer) == false)
{
ProcessMessage = "Please Check Id Upload Status.";
return false;
}
if (_checkManager.IsValidCustomerStatus(_customer) == false)
{
ProcessMessage = "Please Check Customer Status.";
return false;
}
return true;
}
private bool IsValidPersonalCustomer()
{
if (_checkManager.IsValidPersonalInfo(_customer)==false)
{
ProcessMessage = "Please Check Personal Info.";
return false;
}
if (_checkManager.IsValidFinancialInfo(_customer)==false)
{
ProcessMessage = "Please Check Financial Info.";
return false;
}
if (_checkManager.IsValidCompanyInfo(_customer)==false)
{
ProcessMessage = "Please Check Company Info.";
return false;
}
return true;
}
實現一個某種形式的檢查經理的 「ValidateCompanyCustomer」。實施每個「IsValidCompanyInfo」作爲驗證者「策略」。每個驗證器策略都可以實現「檢查」方法。然後,Check Manager將擁有一個IEnumerable驗證器策略。然後,您還可以分別測試每個驗證器策略 – bgura
這些不是if/else語句。他們只是如果陳述。 – mason
由於這是一個**工作**代碼,StackOverflow不是發佈此問題的正確地方。這屬於[CodeReview](http://codereview.stackexchange.com):http://codereview.stackexchange.com/help/on-topic – Claies