Dal libro Professional Enterprise .Net , che ha 5 valutazione di stelle su Amazon che sto dubitando dopo aver letto. Ecco una classe Borrower (in C # ma è piuttosto semplice, chiunque può capirlo) che fa parte di un'applicazione di mutuo costruita dagli autori:
public List<BrokenBusinessRule> GetBrokenRules()
{
List<BrokenBusinessRule> brokenRules = new List<BrokenBusinessRule>();
if (Age < 18)
brokenRules.Add(new BrokenBusinessRule("Age", "A borrower must be over 18 years of age"));
if (String.IsNullOrEmpty(FirstName))
brokenRules.Add(new BrokenBusinessRule("FirstName", "A borrower must have a first name"));
if (String.IsNullOrEmpty(LastName))
brokenRules.Add(new BrokenBusinessRule("LastName", "A borrower must have a last name"));
if (CreditScore == null)
brokenRules.Add(new BrokenBusinessRule("CreditScore", "A borrower must have a credit score"));
else if (CreditScore.GetBrokenRules().Count > 0)
{
AddToBrokenRulesList(brokenRules, CreditScore.GetBrokenRules());
}
if (BankAccount == null)
brokenRules.Add(new BrokenBusinessRule("BankAccount", "A borrower must have a bank account defined"));
else if (BankAccount.GetBrokenRules().Count > 0)
{
AddToBrokenRulesList(brokenRules, BankAccount.GetBrokenRules());
}
// ... more rules here ...
return brokenRules;
}
Elenco completo del codice su snipt.org .
Ciò che mi confonde è che il libro dovrebbe riguardare il design aziendale professionale. Forse sono un po 'prevenuto perché l'autore confessa nel capitolo 1 di non sapere veramente che cosa fosse il disaccoppiamento, o cosa significasse SOLID fino all'ottavo anno della sua carriera di programmatore (e penso che abbia scritto il libro nell'anno 8.1)
Non sono esperto ma non mi sento a mio agio con:
-
Troppi se non altro.
-
La classe funge sia da entità che ha validità. Non è un design puzzolente? (Potrebbe essere necessario visualizzare la classe completa per ottenere un contesto)
Forse ho torto, ma non voglio prendere in considerazione le cattive pratiche da un libro che dovrebbe insegnare un design aziendale. Il libro è pieno di frammenti di codice simili e mi sta davvero infastidendo. Se la è cattiva progettazione, come potresti evitare di usare troppe altre istruzioni if.
Ovviamente non mi aspetto che tu possa riscrivere la lezione, ma solo dare un'idea generale di cosa si potrebbe fare.