рддрд░реНрдХ рдХрд╣рд╛рдВ рдЫрд┐рдкрд╛ рд╣реИ?

рд╕рд╡рд╛рд▓


рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддреЗ рд╕рдордп, рд╢рдмреНрдж "рддрд░реНрдХ" рдпрд╛ "рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ" рдХрд╛ рдЕрдХреНрд╕рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:


рддреЛ, рдореБрдЭреЗ рдХреМрди рдмрддрд╛рдПрдЧрд╛ рдХрд┐ "рддрд░реНрдХ" рдХреНрдпрд╛ рд╣реИ? рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдХреЛрдб рдореЗрдВ рдХреЛрдИ IF рд╣реИ? рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдЖрдИрдПрдлрдПрд╕ рдХреЗ рдмрд┐рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдб рд╣реИ? рдпрд╛ (рд╡реНрдпрд╡рд╕рд╛рдп -) "рддрд░реНрдХ" рдХрд╛ рдЕрд░реНрде рдЧреНрд░рд╛рд╣рдХ рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реА рдХреЛрдИ рдЬрд╛рдирдХрд╛рд░реА рд╣реИ? рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣рдо рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдкреИрд╕реЗ рд╕реЗ рдХреБрдЫ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЙрд╕рдиреЗ рдСрд░реНрдбрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛? рд╣рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдЗрд╕рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рд╕рднреА рдХреЛрдб рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ "рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ" рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХрднреА рд╕рдордЭ рдирд╣реАрдВ рд╕рдХрд╛ рдХрд┐ рдирд░рдХ рддрд░реНрдХ рдХреНрдпрд╛ рд╣реИред



рдЬрд╡рд╛рдм рд╣реИ


рд╢рд╛рдпрдж рдЗрд╕ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ "рддрд░реНрдХ" рд╢рдмреНрдж рдХреЗ рдмрдЬрд╛рдп, "рдЬреНрдЮрд╛рди" рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддрд░реНрдХ рдХреЛрдб рдХрд╛ рдХреЛрдИ рдЬреНрдЮрд╛рди рд╣реИ, рдпрд╛ рдХреЛрдб рдХреЛ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдк рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рднреА рддреИрдпрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: "рддрд░реНрдХ" рд╡рд╣ рд╕рдм рд╣реИ рдЬреЛ рдЖрдк рдХрдо рд╕реЗ рдХрдо рдПрдХ рдмрд╛рд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред

рдЙрджрд╛рд╣рд░рдг


рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЦрд╛рддрд╛ рд╡рд░реНрдЧ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЦреЛрджрд╛ рд╣реИред

рдпрд╣ рдРрд╕рд╛ рд╣реА рдерд╛ред рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрд╛рд▓рдп рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рджрд┐рди рдЗрдВрдЯрд░рдиреЗрдЯ рджреЛ рдШрдВрдЯреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдЯ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдерд╛ - рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рд╡рд╣рд╛рдБ, svn, рдЬреАрд░рд╛, рдЬреНрдЮрд╛рди рдХрд╛ рдЖрдзрд╛рд░ рдФрд░ рдЗрддрдиреЗ рдкрд░ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рдереЗред рдФрд░ рдореИрдВрдиреЗ рдХреБрдЫ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрднреНрдпрд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдФрд░ рдЦрд╛рддреЗ рдореЗрдВ рдЖрдпрд╛:

public class Account { // Negative amount means that account is prepaid private BigDecimal amount; public BigDecimal getAmount() { return amount; } //        } 


рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдБ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП? IF рдХреЗ рдХрд╣рд╛рдБ рд╣реИрдВ? рдпрд╣рд╛рдБ рддрд░реНрдХ рдХрд╣рд╛рдБ рд╣реИ? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рдирд╣реАрдВ рд╣реИ, рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИред рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рд╡рд░реНрдЧ рдХреЛ рдЫреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рдХреБрдЫ рдФрд░ рдЬрдЯрд┐рд▓ рд╣реЛ рдЧрдпрд╛ рдерд╛, рдЬрдм рдореИрдВрдиреЗ рдЕрдЪрд╛рдирдХ рдЪрд░ amount рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рджреЗрдЦреА:
рдирдХрд╛рд░рд╛рддреНрдордХ рд░рд╛рд╢рд┐ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЦрд╛рддрд╛ рдкреНрд░реАрдкреЗрдб рд╣реИ


рдпрд╣ рдХреНрдпрд╛ рд╣реИ?
рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ "рд░рд╛рд╢рд┐" рдЗрд╕ рдЧреНрд░рд╛рд╣рдХ рдХрд╛ рдХреБрд▓ рдЛрдг рд╣реИ, рдФрд░ рдпрджрд┐ рдЧреНрд░рд╛рд╣рдХ рдиреЗ рдЕрдЧреНрд░рд┐рдо рднреБрдЧрддрд╛рди рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдпрд╣ "рдЛрдг" рдПрдХ рдЛрдг рдЪрд┐рд╣реНрди рдХреЗ рд╕рд╛рде рд╣реИред рдЦреИрд░, рдпрд╣ рдХреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдЬреНрдЮрд╛рди рд╣реИред рдЖрдЗрдП рдЗрд╕ рдЯрд┐рдкреНрдкрдгреА рдХреЛ рдПрдХ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:

 public class AccountTest { @Test public void negativeAmountMeansThatAccountIsPrepaid() { Account prepaidAccount = new Account(-123); assertTrue(prepaidAccount.isPrepaid()); } } 


рдЪреВрдВрдХрд┐ рд╣рдо рдПрдХ рдирдХрд╛рд░рд╛рддреНрдордХ "рд░рд╛рд╢рд┐" рдХреЗ рдорд╛рдорд▓реЗ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕рдХрд╛рд░рд╛рддреНрдордХ рдХреЗ рдорд╛рдорд▓реЗ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛:
  @Test public void positiveAmountMeansThatAccountIsInDebt() { Account indebtAccount = new Account(456); assertFalse(indebtAccount.isPrepaid()); assertTrue(indebtAccount.isInDebt()); } 


рддреЛ рдЕрдирдЬрд╛рдиреЗ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рдирдП рддрд░реАрдХреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдкреНрд░реАрдкреЗрдб рд╣реИ рдФрд░ рдЖрдИрдмреАрдбреАрдЯреА рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╕реНрдкрд╖реНрдЯ рд╣реИ:
 public class Account { private BigDecimal amount; public boolean isInDebt() { return amount > 0; } public boolean isPrepaid() { return amount < 0; } } 


рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА IF рдХреЛрдб рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рд╣реИ!
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдЪрд╛рд░, рдЬреЛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрдирд╛ рдЪрд╛рд╣рд┐рдП: рд╢рд╛рдпрдж рдпреЗ рдЖрдИрдПрдл рдкрд╣рд▓реЗ рд╕реЗ рдХрд╣реАрдВ рдкрд╣рд▓реЗ рд╕реЗ рдереЗ?

рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рджрд┐рдЦрдирд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдерд╛ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпреЗ IFs рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдб рдореЗрдВ рдереЗ, рдФрд░ рдХрд╣реАрдВ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди JSP рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдЕрд░реНрдерд╛рддреН, "рджреГрд╢реНрдп" рдкрд░рдд рдореЗрдВ, рдЬрд┐рд╕рдореЗрдВ, рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдХреЛрдИ рддрд░реНрдХ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

 <%-- Positive amount means that account is in debt %--> <c:if test="${account.amount > 0}"> <font color="red"> !</font> </c:if> <c:if test="${account.amount < 0}"> <font color="green"></font> </c:if> 


рдЕрдЬреА, рдХрд┐рддрдирд╛ рджрд┐рд▓рдЪрд╕реНрдк! рдЗрд╕рд▓рд┐рдП рдореЗрд░рд╛ рджреВрд╕рд░рд╛ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓рд╛ рд╕рд╛рдордиреЗ рдЖрдпрд╛ред рдХрд┐рддрдирд╛ рдЕрджреНрднреБрдд рд╣реИред рдЕрдм, рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВ рдФрд░ isPrepaid , рд╣рдо JSP рд╕реЗ рддрд░реНрдХ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ:

 <c:if test="${account.inDebt}"> <font color="red"> !</font> </c:if> <c:if test="${account.prepaid}"> <font color="green"></font> </c:if> 


рдХреНрдпрд╛ рдпрд╣ рдмреЗрд╣рддрд░ рд╣реЛ рдЧрдпрд╛ рд╣реИ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрди рдЧрдпрд╛ рд╣реИред рдпрд╣ рдПрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХреА рддрд░рд╣ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╣реИ - рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЫрд┐рдкреА рд╣реБрдИ рдЖрдВрдЦреЛрдВ рд╕реЗ рдЫрд┐рдкрд╛рдирд╛ред рдХреЗрд╡рд▓ рд░рд╛рд╢рд┐ рд╡рд░реНрдЧ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЧреНрд░рд╛рд╣рдХ рдХрд┐рд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдмрдХрд╛рдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдкреВрд░реА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдХреЛрдИ рдФрд░ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рд╣реЛрддрд╛ рд╣реИ - рдЧреНрд░рд╛рд╣рдХ рдХреЛ isInDebt рдФрд░ isPrepaid рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рди рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ, рдореВрд▓реНрдп "рдЛрдг" рдФрд░ "рдкреВрд░реНрд╡ рднреБрдЧрддрд╛рди" рдЖрдо рддреМрд░ рдкрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрдВрднреЛрдВ рдореЗрдВ, рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЖрдо рддреМрд░ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рдФрд░ рдЖрдорддреМрд░ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдм, рджреЛ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рддрд░реНрдХ Account рд╡рд░реНрдЧ рдореЗрдВ рдЫрд┐рдкрд╛ рд╣реБрдЖ (рдПрдирдХреИрдкреНрд╕реБрд▓реЗрдЯреЗрдб) рд╣реИред

рдпрджрд┐ рдЖрдк рдЕрднреА рднреА рдЗрд╕реЗ рдирд╣реАрдВ рдорд╛рдирддреЗ рд╣реИрдВ, рддреЛ рдХреЛрдб рдХреА рдорд╛рддреНрд░рд╛ рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВред
рдпрд╣ рдерд╛
 <%-- Positive amount means that account is in debt %--> <c:if test="${account.amount > 0}"> <font color="red"> !</font> </c:if> 

рдмрди рдЧрдпрд╛ рд╣реИ
 <c:if test="${account.inDebt}"> <font color="red"> !</font> </c:if> 



рдЖрдк рдЖрдЧреЗ рднреА рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ getAmount() рдмрдЬрд╛рдп getAmount() рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЗ getPrepaidAmount() рдФрд░ getDoubt() ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрдирдХреЗ рдЕрдВрджрд░ рдЖрдк рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЛрдг рд╣реИ рдпрд╛ рдЕрдЧреНрд░рд┐рдо рднреБрдЧрддрд╛рдиред рдЕрд░реНрдерд╛рддреН, рдЕрдм рдпрд╣ рдЕрд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдРрд╕рд╛ рдХреЛрдб рд▓рд┐рдЦрдирд╛:

 <%--      ,    . %--> <c:if test="${account.amount != 0}> <font color="red"> !</font> </c:if> 


рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, getAmount () рд╡рд┐рдзрд┐ рдХреЛ рдЕрдм рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдорд┐рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рд╣реИ: рдбреЗрдЯрд╛ рдФрд░ рдХреЛрдб рдЫрд┐рдкрд╛рдПрдВ рдФрд░ рдХреЗрд╡рд▓ рддрд░реАрдХреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХреНрд╕реЗрд╕ рджреЗрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдЗрдВрдЯрд░рдиреЗрдЯ рдХреА рдорд░рдореНрдордд рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реЛрддреА, рддреЛ рдореБрдЭреЗ рдЕрдиреНрдп 20 рдЧреЗрдЯ-рд╕реЗрдЯрд░реЛрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдорд┐рд▓ рдЬрд╛рддрд╛ред

рдиреИрддрд┐рдХрддрд╛


рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдкрдардиреАрдп, рд╡рд╕реНрддреБ-рдЙрдиреНрдореБрдЦ рдХреЛрдб рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВред рдФрд░ рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ: "рдореЗрд░реЗ рдХреЛрдб рдореЗрдВ рдХреЛрдИ рддрд░реНрдХ рдирд╣реАрдВ рд╣реИ, рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ ..." рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рд╣реИ!

рддрд░реНрдХ рд╣реИ, рдпрд╣ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

Source: https://habr.com/ru/post/In114889/


All Articles