рдореИрдВрдиреЗ рдкреБрд╕реНрддрдХ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЬрд┐рд╕реЗ рд╣рд░ рдХреЛрдИ рдЬрд╛рдирддрд╛ рд╣реИ, рдФрд░ рд▓реЗрдЦрдХ рдЗрд╕реЗ "рд╕реНрдХреВрд▓ рдСрдл рдкреНрдпреЛрд░ рдХреЛрдб рдЯреАрдЪрд░реНрд╕" рдХрд╣рддреЗ рд╣реИрдВред рдорд╛рд░реНрдЯрд┐рди рдХреА рдирд┐рдЧрд╛рд╣реЗрдВ рдХрд╣ рд░рд╣реА рд╣реИрдВ:
тАЬрдореИрдВ рддреБрдореНрд╣рд╛рд░реЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд╣реА рджреЗрдЦрддрд╛ рд╣реВрдБред рдХреНрдпрд╛ рдЖрдк рдлрд┐рд░ рд╕реЗ рд╕реНрд╡рдЪреНрдЫ рдХреЛрдб рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ? "

рдЕрдзреНрдпрд╛рдп 1. рд╕реНрд╡рдЪреНрдЫ рд╕рдВрд╣рд┐рддрд╛
рдХреБрдЫ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдпрд╣ рд╕рдмрд╕реЗ рд╕реНрд╡рдЪреНрдЫ рдорд╛рд░реНрдЯрд┐рди рд╕рдВрд╕реНрдХрд░рдг рдХреЛрдб рдХреНрдпрд╛ рд╣реИ? рдпрд╣ рджреЛрд╣рд░рд╛рд╡ рдХреЗ рдмрд┐рдирд╛ рдХреЛрдб рд╣реИ, рдиреНрдпреВрдирддрдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд╕рд╛рде, рдкрдврд╝рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди, рд╕рд░рд▓ред рдПрдХ рдЖрджрд░реНрд╢ рд╡рд╛рдХреНрдп рдХреЗ рд░реВрдк рдореЗрдВ, рдХреЛрдИ рднреА рдЪреБрди рд╕рдХрддрд╛ рд╣реИ: "рд╕реНрдкрд╖реНрдЯрддрд╛ рд╕рднреА рд╕реЗ рдКрдкрд░ рд╣реИ!"ред
рдЕрдзреНрдпрд╛рдп 2. рд╕рд╛рд░реНрдердХ рдирд╛рдо
рдирд╛рдореЛрдВ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рдЗрд░рд╛рджреЛрдВ рдХреЛ рд╡реНрдпрдХреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
рдПрдХ рдЪрд░, рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рд╡рд░реНрдЧ рдХрд╛ рдирд╛рдо рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдЪрд░ рдХреНрдпреЛрдВ рдореМрдЬреВрдж рд╣реИ, рдпрд╣ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдирд╛рдо рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рдЗрд░рд╛рджреЛрдВ рдХреЛ рд╡реНрдпрдХреНрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд▓рд┐рдЦрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдорд╛рдкрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХрд┐рди рдЗрдХрд╛рдЗрдпреЛрдВ рдореЗрдВред
рдПрдХ рдЕрдЪреНрдЫрд╛ рдЪрд░ рдирд╛рдо рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг: daysSinceCreation;
рдЙрджреНрджреЗрд╢реНрдп: рдЧреИрд░ рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЛ рд╣рдЯрд╛ рджреЗрдВред
рдЧрд▓рдд рд╕реВрдЪрдирд╛ рд╕реЗ рдмрдЪреЗрдВ
рдЕрднрд┐рдкреНрд░рд╛рдп рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдиреНрдп рдЫрд┐рдкреЗ рд╣реБрдП рдЕрд░реНрде рд╡рд╛рд▓реЗ рд╢рдмреНрджреЛрдВ рдХрд╛ рдкреНрд░рдпреЛрдЧ рди рдХрд░реЗрдВред рдирд╛рдореЛрдВ рдореЗрдВ рд╕реВрдХреНрд╖реНрдо рдЕрдВрддрд░ рд╕реЗ рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, XYZControllerForEfficientHandlingOfStrings рдФрд░ XYZControllerForEfficientStorageOfStringsред
рдЧрд▓рдд рд░реВрдк рд╕реЗ рдирд╛рдо рдХреЗ рдЧрд▓рдд рд░реВрдк рд╕реЗ рднрдпрд╛рд╡рд╣ рдЙрджрд╛рд╣рд░рдг рд▓реЛрдЕрд░рдХреЗрд╕ "рдПрд▓" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рд░рд╛рдЬрдзрд╛рдиреА "рдУ" рдЪрд░ рдирд╛рдореЛрдВ рдореЗрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рдВрдпреЛрдЬрдиреЛрдВ рдореЗрдВред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╕рдорд╕реНрдпрд╛рдПрдВ рдкреИрджрд╛ рд╣реЛрддреА рд╣реИрдВ рдХрд┐ рдпреЗ рдкрддреНрд░ рдХреНрд░рдорд╢рдГ "1" рдФрд░ "0" рд╕реНрдерд┐рд░рд╛рдВрдХ рд╕реЗ рднрд┐рдиреНрди рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред
рд╕рд╛рд░реНрдердХ рдЕрдВрддрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдпрджрд┐ рдирд╛рдо рдЕрд▓рдЧ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рд╡рд┐рднрд┐рдиреНрди рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдлрд╝реЙрд░реНрдо рдХреА "рд╕рдВрдЦреНрдпрд╛ рд╢реНрд░реГрдВрдЦрд▓рд╛" (a1, a2, ... aN) рд╕рдЪреЗрдд рдирд╛рдордХрд░рдг рдХреЗ рд╡рд┐рдкрд░реАрдд рд╣реИрдВред рд╡реЗ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рд▓реЗрдЦрдХ рдХреЗ рдЗрд░рд╛рджреЛрдВ рдХрд╛ рдЕрдВрджрд╛рдЬрд╛ рдирд╣реАрдВ рд▓рдЧрд╛рддреЗ рд╣реИрдВред
рдЕрд╕рдВрд╕рджреАрдп рд╢рдмреНрдж рдмреЗрдорд╛рдиреА рд╣реИрдВред рд╢рдмреНрдж рдЪрд░ рдХреЛ рдЪрд░ рдирд╛рдореЛрдВ рдореЗрдВ рдХрднреА рдирд╣реАрдВ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╢рдмреНрдж рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рддрд╛рд▓рд┐рдХрд╛ рдирд╛рдореЛрдВ рдореЗрдВ рдХрднреА рдирд╣реАрдВ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред NameString рдирд╛рдо рд╕реЗ рдмреЗрд╣рддрд░ рдХреНрдпреЛрдВ рд╣реИ? рдХреНрдпрд╛ рдПрдХ рдирд╛рдо, рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдХрд╣ рд╕рдХрддрд╛ рд╣реИ?
рд╕реНрдкреЗрд▓рд┐рдВрдЧ рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: рдЬреЗрдирдЯрд╛рдЗрдореНрдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЬреЗрдирдЯрд╛рдЗрдореЗрд╕реНрдЯреИрдореНрдк рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд╣реИред
рдЦреЛрдЬ рдпреЛрдЧреНрдп рдирд╛рдо рдЪреБрдиреЗрдВ
рдПрдХрд▓-рдЕрдХреНрд╖рд░ рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рд▓рдШреБ рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдирд╛рдо рдХреЛрдбрд┐рдВрдЧ рдпреЛрдЬрдирд╛рдУрдВ рд╕реЗ рдмрдЪреЗрдВ
рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдХреЛрдбрд┐рдд рдирд╛рдо рдЦрд░рд╛рдм рд░реВрдк рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реИрдВ рдФрд░ рдЙрдирдореЗрдВ рдЯрд╛рдЗрдкреЛ рдмрдирд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИред
рдЗрдВрдЯрд░рдлреЗрд╕ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
рдореИрдВ (рдкреБрд╕реНрддрдХ рдХрд╛ рд▓реЗрдЦрдХ) рдЙрдкрд╕рд░реНрдЧреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдирд╛рдореЛрдВ рдХреЛ рдЫреЛрдбрд╝рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред рдЙрдкрд╕рд░реНрдЧ I, рдЬреЛ рдкреБрд░рд╛рдиреЗ рдХреЛрдб рдореЗрдВ рдЗрддрдирд╛ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ, рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд▓рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ, рдФрд░ рд╕рдмрд╕реЗ рдмреБрд░реА рддрд░рд╣ рд╕реЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдпрд╣ рдирд╣реАрдВ рдмрддрд╛рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рд╡реЗ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рд╡рд░реНрдЧ рдХреЗ рдирд╛рдо
рдХреНрд▓рд╛рд╕ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдирд╛рдо рд╕рдВрдЬреНрдЮрд╛ рдФрд░ рдЙрдирдХреЗ рд╕рдВрдпреЛрдЬрди рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП: рдЧреНрд░рд╛рд╣рдХ, рд╡рд┐рдХреАрдкреЗрдЬ, рдЦрд╛рддрд╛ рдФрд░ рдПрдбреНрд░реЗрд╕рдкрд░ред рд╡рд░реНрдЧ рдирд╛рдореЛрдВ рдореЗрдВ рдкреНрд░рдмрдВрдзрдХ, рдкреНрд░реЛрд╕реЗрд╕рд░, рдбреЗрдЯрд╛ рдпрд╛ рдЬрд╛рдирдХрд╛рд░реА рдЬреИрд╕реЗ рд╢рдмреНрджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдмрдЪреЗрдВред рд╡рд░реНрдЧ рдирд╛рдо рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╡рд┐рдзрд┐ рдирд╛рдо
рд╡рд┐рдзрд┐ рдХреЗ рдирд╛рдо рдХреНрд░рд┐рдпрд╛ рдпрд╛ рдореМрдЦрд┐рдХ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рд╣реИрдВ: рдкреЛрд╕реНрдЯрдкреЗрдореЗрдВрдЯ, рдбрд┐рд▓реАрдЯ, рд╕реЗрд╡, рдЖрджрд┐ред рдкрдврд╝реЗрдВ / рд▓рд┐рдЦреЗрдВ рд╡рд┐рдзрд┐рдпрд╛рдВ рдФрд░ рд╡рд┐рдзреЗрдп рдореВрд▓реНрдп рдФрд░ рдЙрдкрд╕рд░реНрдЧ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ, рд╕реЗрдЯ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ javabean рдорд╛рдирдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣реЛрддреЗ рд╣реИрдВред
рджрдгреНрдб рд╕реЗ рдмрдЪрдирд╛
рд▓реЗрдЦрдХ рдХрд╛ рдХрд╛рд░реНрдп рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рд╕реНрдкрд╖реНрдЯ рдХрд░рдирд╛ рд╣реИред рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдЕрдзреНрдпрдпрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛, рдХреЛрдб рдХреЛ рдПрдХ рдирдЬрд╝рд░ рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЛрдХрдкреНрд░рд┐рдп рд╕рд╛рд╣рд┐рддреНрдп рдХреЗ рдореЙрдбрд▓ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ, рдЬрд┐рд╕рдореЗрдВ рд▓реЗрдЦрдХ рдХреЛ рд╕реНрд╡рдпрдВ рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд╡реНрдпрдХреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╕рд╛рд░реНрдердХ рд╕рдВрджрд░реНрдн рдЬреЛрдбрд╝реЗрдВред
рд╕рдВрджрд░реНрдн рдЙрдкрд╕рд░реНрдЧреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: addrFirstName, addrLastName, addrState, рдЖрджрд┐ред рдХрдо рд╕реЗ рдХрдо рдХреЛрдб рд░реАрдбрд░ рдпрд╣ рд╕рдордЭ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдЪрд░ рдПрдХ рдмрдбрд╝реА рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВред рдмреЗрд╢рдХ, рдПрдбреНрд░реЗрд╕ рдирд╛рдордХ рдПрдХ рдХреНрд▓рд╛рд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрдзрд┐рдХ рд╕рд╣реА рд╣реЛрдЧрд╛, рддрд╛рдХрд┐ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рднреА рдкрддрд╛ рдЪрд▓реЗ рдХрд┐ рдЪрд░ рдХреБрдЫ рдФрд░ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВред
рдЕрд╕реНрдкрд╖реНрдЯ рд╕рдВрджрд░реНрдн рдХреЗ рд╕рд╛рде рдЪрд░:
private void printGuessStatistics(char candidate, int count) { String number; String verb; String pluralModifier; if (count == 0) { number = "no"; verb = "are"; pluralModifier = "s"; } else if (count == 1) { number = ~_~quot quot~_~; verb = "is"; pluralModifier = ""; } else { number = Integer.toString(count); verb = "are"; pluralModifier = "s"; } String guessMessage = String.format( "There %s %s %s%s", verb, number, candidate, pluralModifier ); print(guessMessage); }
рдлрд╝рдВрдХреНрд╢рди рдереЛрдбрд╝рд╛ рд▓рдВрдмрд╛ рд╣реИ, рдФрд░ рдЪрд░ рдкреВрд░реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЫреЛрдЯреЗ рд╕рд┐рдореЗрдВрдЯрд┐рдХ рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ GuessStatisticsMessage рдХреНрд▓рд╛рд╕ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рддреАрди рдЪрд░ рдмрдирд╛рдиреЗ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рддрд░рд╣, рд╣рдо рддреАрди рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдкрд╖реНрдЯ рд╕рдВрджрд░реНрдн рдкреНрд░рджрд╛рди рдХрд░реЗрдВрдЧреЗ - рдЕрдм рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдпреЗ рдЪрд░ GuessStatisticsMessage рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВред
рд╕рдВрджрд░реНрдн рдХреЗ рд╕рд╛рде рдЪрд░:
public class GuessStatisticsMessage { private String number; private String verb; private String pluralModifier; public String make(char candidate, int count) { createPluralDependentMessageParts(count); return String.format( "There %s %s %s%s", verb, number, candidate, pluralModifier ); } private void createPluralDependentMessageParts(int count) { if (count == 0) { thereAreNoLetters(); } else if (count == 1) { thereIsOneLetter(); } else { thereAreManyLetters(count); } } private void thereAreManyLetters(int count) { number = Integer.toString(count); verb = "are"; pluralModifier = "s"; } private void thereIsOneLetter() { number = ~_~quot quot~_~; verb = "is"; pluralModifier = ""; } private void thereAreNoLetters() { number = "no"; verb = "are"; pluralModifier = "s"; } }
рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╕рдВрджрд░реНрдн рди рдЬреЛрдбрд╝реЗрдВ
рдЫреЛрдЯреЗ рдирд╛рдо рдЖрдорддреМрд░ рдкрд░ рд▓рдВрдмреЗ рдирд╛рдореЛрдВ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реЛрддреЗ рд╣реИрдВ, рдпрджрд┐ рдХреЛрдб рд░реАрдбрд░ рдореЗрдВ рдХреЗрд╡рд▓ рдЙрдирдХрд╛ рдЕрд░реНрде рд╕реНрдкрд╖реНрдЯ рд╣реЛред рдирд╛рдо рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрджрд░реНрдн рд╢рд╛рдорд┐рд▓ рди рдХрд░реЗрдВред
рдЕрдзреНрдпрд╛рдп 3. рдХрд╛рд░реНрдп
рд╕рдШрдирддрд╛!
рдкрд╣рд▓рд╛ рдирд┐рдпрдо: рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЙрдореНрдкреИрдХреНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рджреВрд╕рд░рд╛ рдирд┐рдпрдо: рдлрд╝рдВрдХреНрд╢рди рдФрд░ рднреА рдЕрдзрд┐рдХ рдХреЙрдореНрдкреИрдХреНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореЗрд░реЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЕрдиреБрднрд╡ рдиреЗ рдореБрдЭреЗ (рдХрдИ рдкрд░реАрдХреНрд╖рдг рдФрд░ рддреНрд░реБрдЯрд┐ рдХреА рдХреАрдордд рдкрд░) рд╕рд┐рдЦрд╛рдпрд╛ рд╣реИ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╡рд╛рдВрдЫрдиреАрдп рд╣реИ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреА рд▓рдВрдмрд╛рдИ 20 рд▓рд╛рдЗрдиреЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИред
рдПрдХ рдСрдкрд░реЗрд╢рди рдХрд╛ рдирд┐рдпрдо
рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдСрдкрд░реЗрд╢рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЙрд╕реЗ рдЕрдЪреНрдЫрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдФрд░ рдЙрд╕реЗ рдХреБрдЫ рдФрд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдХреЛрдИ рдлрд╝рдВрдХреНрд╢рди рдХреЗрд╡рд▓ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдШреЛрд╖рд┐рдд рдирд╛рдо рдХреЗ рддрд╣рдд рд╕рдорд╛рди рд╕реНрддрд░ рдкрд░ рд╣реИрдВ, рддреЛ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдПрдХ рдСрдкрд░реЗрд╢рди рдХрд░рддрд╛ рд╣реИред
рд╕рдорд╛рд░реЛрд╣ рдЕрдиреБрднрд╛рдЧ
рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдХреЗрд╡рд▓ рдПрдХ рдСрдкрд░реЗрд╢рди рдХрд░рддрд╛ рд╣реИ, рдЙрд╕реЗ рд╕рд╛рд░реНрдердХ рд░реВрдк рд╕реЗ рдЕрдиреБрднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╕рдорд╛рд░реЛрд╣ рдХреЗ рдкреНрд░рддрд┐ рдЕрдореВрд░реНрдд рдХрд╛ рдПрдХ рд╕реНрддрд░
рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдлрд╝рдВрдХреНрд╢рди "рдХреЗрд╡рд▓ рдПрдХ рдСрдкрд░реЗрд╢рди" рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рднреА рдХрдорд╛рдВрдбреНрд╕ рдЕрдореВрд░реНрддрддрд╛ рдХреЗ рд╕рдорд╛рди рд╕реНрддрд░ рдкрд░ рд╣реИрдВред
рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рднреАрддрд░ рдЕрдореВрд░реНрддрддрд╛ рдХрд╛ рд╕рдореНрдорд┐рд╢реНрд░рдг рд╕реНрддрд░ рд╣рдореЗрд╢рд╛ рднреНрд░рдо рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИред
рдХреЛрдб рдХреЛ рдКрдкрд░ рд╕реЗ рдиреАрдЪреЗ рддрдХ рдкрдврд╝рдирд╛: рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдирд┐рдпрдо
рдХреЛрдб рдХреЛ рдХрд╣рд╛рдиреА рдХреА рддрд░рд╣ рдкрдврд╝рдирд╛ рдЪрд╛рд╣рд┐рдП - рдКрдкрд░ рд╕реЗ рдиреАрдЪреЗ рддрдХред
рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЕрдореВрд░реНрдд рдХреЗ рдЕрдЧрд▓реЗ рд╕реНрддрд░ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдЖрдкрдХреЛ рдлрд╝рдВрдХреНрд╢рди рдХреА рд╕реВрдЪреА рдХреЛ рдкрдврд╝рддреЗ рд╕рдордп рдХреЛрдб рдХреЛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдЕрдореВрд░реНрдд рдХреЗ рд╕реНрддрд░ рд╕реЗ рдиреАрдЪреЗ рдЬрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдореИрдВ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ "рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдирд┐рдпрдо" рдХрд╣рддрд╛ рд╣реВрдВред
рдЖрджреЗрд╢реЛрдВ рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ
рдХреЙрдореНрдкреИрдХреНрдЯ рд╕реНрд╡рд┐рдЪ рдХрдорд╛рдВрдб рд▓рд┐рдЦрдирд╛ рдХрд╛рдлреА рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рд┐рд░реНрдл рджреЛ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрд╡рд┐рдЪ рдХрдорд╛рдВрдб рдПрдХ рд╣реА рдмреНрд▓реЙрдХ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реНрдерд╛рди рд▓реЗрддрд╛ рд╣реИ рдпрд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░ рдореЗрдВ рдХрдмреНрдЬрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕реНрд╡рд┐рдЪ рдХрдорд╛рдВрдб рдмрдирд╛рдирд╛ рднреА рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдЬреЛ рдПрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ - рд╕реНрд╡рднрд╛рд╡ рд╕реЗ, рд╕реНрд╡рд┐рдЪ рдХрдорд╛рдВрдб рд╣рдореЗрд╢рд╛ рдПрди рдСрдкрд░реЗрд╢рди рдХрд░рддреЗ рд╣реИрдВред рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢, рд╣рдо рд╣рдореЗрд╢рд╛ рд╕реНрд╡рд┐рдЪ рдХрдорд╛рдВрдб рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпреЗ рдХрдорд╛рдВрдб рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рд╡рд░реНрдЧ рдореЗрдВ рдЫрд┐рдкреЗ рд╣реБрдП рд╣реИрдВ рдФрд░ рдХреЛрдб рдореЗрдВ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдирд╣реАрдВ рд╣реИрдВред рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдмрд╣реБрд░реВрдкрддрд╛ рд╣рдореЗрдВ рдЗрд╕рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗрд╡рд▓ рдПрдХ рдСрдкрд░реЗрд╢рди рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд░реНрдордЪрд╛рд░реА рдХреЗ рдкреНрд░рдХрд╛рд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред
public Money calculatePay(Employee e) throws InvalidEmployeeType { switch (e.type) { case COMMISSIONED: return calculateCommissionedPay(e); case HOURLY: return calculateHourlyPay(e); case SALARIED: return calculateSalariedPay(e); default: throw new InvalidEmployeeType(e.type); } }
рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдХрдИ рдиреБрдХрд╕рд╛рди рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рдФрд░ рдирдП рдкреНрд░рдХрд╛рд░ рдХреЗ рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд╕рд╛рде рдпрд╣ рдмрдврд╝реЗрдЧрд╛ред рджреВрд╕рд░реЗ, рдпрд╣ рд╕рдмрд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдСрдкрд░реЗрд╢рди рдХрд░рддрд╛ рд╣реИред рддреАрд╕рд░рд╛, рдпрд╣ рдПрдХрд▓ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреЗ рдХрдИ рд╕рдВрднрд╛рд╡рд┐рдд рдХрд╛рд░рдг рд╣реИрдВред
рдЪреМрдерд╛, рдпрд╣ рдУрдкрди рдмрдВрдж рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рд░ рдмрд╛рд░ рдирдП рдкреНрд░рдХрд╛рд░ рдЬреЛрдбрд╝реЗ рдЬрд╛рдиреЗ рдкрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛрдб рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред
рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рдЧрдВрднреАрд░ рджреЛрд╖ рдпрд╣ рд╣реИ рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рд╕рдорд╛рди рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЕрд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
isPayday (рдХрд░реНрдордЪрд╛рд░реА рдИ, рддрд┐рдерд┐ рддрд┐рдерд┐)
рдпрд╛
рд╕реБрдкреБрд░реНрджрдЧреА (рдХрд░реНрдордЪрд╛рд░реА рдИ, рдкреИрд╕рд╛ рджреЗрдирд╛)
рдФрд░ рдЗрд╕реА рддрд░рд╣ред
рдЗрди рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдПрдХ рд╣реА рддреНрд░реБрдЯрд┐рдкреВрд░реНрдг рд╕рдВрд░рдЪрдирд╛ рд╣реЛрдЧреАред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдЕрдореВрд░реНрдд рдХрд╛рд░рдЦрд╛рдиреЗ рдХреА рдиреАрдВрд╡ рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрдорд╛рдВрдб рдХреЛ рджрдлрдирд╛рдирд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХрд┐рд╕реА рдХреЛ рдирд╣реАрдВ рджрд┐рдЦрд╛рдирд╛ рд╣реИред рдлреИрдХреНрдЯрд░реА рдХрд░реНрдордЪрд╛рд░реА рдХреЗ рд╡рдВрд╢рдЬреЛрдВ рдХреЗ рд╕рдВрдЧрдд рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд╝рдВрдХреНрд╢рдиPPay, isPayDay, deliveryPay, рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдХрд░реНрдордЪрд╛рд░реА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╣реБрд░реВрдкрд┐рдХ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред
public abstract class Employee { public abstract boolean isPayday(); public abstract Money calculatePay(); public abstract void deliverPay(Money pay); } ----------------- public interface EmployeeFactory { public Employee makeEmployee(EmployeeRecord r) throws InvalidEmployeeType; } ----------------- public class EmployeeFactoryImpl implements EmployeeFactory { public Employee makeEmployee(EmployeeRecord r) throws InvalidEmployeeType { switch (r.type) { case COMMISSIONED: return new CommissionedEmployee(r) ; case HOURLY: return new HourlyEmployee(r); case SALARIED: return new SalariedEmploye(r); default: throw new InvalidEmployeeType(r.type); } } }
рд╕реНрд╡рд┐рдЪ рдХрдорд╛рдВрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрд░рд╛ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рдпрдо рдпрд╣ рд╣реИ рдХрд┐ рдпреЗ рдХрдорд╛рдВрдб рдорд╛рдиреНрдп рд╣реИрдВ рдпрджрд┐ рд╡реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдПрдХ рдмрд╛рд░ рдЖрддреЗ рд╣реИрдВ, рддреЛ рдкреЙрд▓реАрдореЙрд░реНрдлрд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдмрд╛рдХреА рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдЕрджреГрд╢реНрдп рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рдВрд╢рд╛рдиреБрдЧрдд рд╕рдВрдмрдВрдзреЛрдВ рдХреЗ рдкреАрдЫреЗ рдЫрд┐рдкрд╛ рд╣реЛрддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдЕрдкрд╡рд╛рдж рдХреЗ рдмрд┐рдирд╛ рдХреЛрдИ рдирд┐рдпрдо рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдХреБрдЫ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЗрд╕ рдирд┐рдпрдо рдХреА рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рд╢рд░реНрддреЛрдВ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рд╕рд╛рд░реНрдердХ рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдЗрд╕ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдЖрдзрд╛ рдкреНрд░рдпрд╛рд╕ рдХреЙрдореНрдкреИрдХреНрдЯ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреЗ рдирд╛рдореЛрдВ рдХреЛ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЖрддрд╛ рд╣реИ рдЬреЛ рдПрдХрд▓ рдСрдкрд░реЗрд╢рди рдХрд░рддреЗ рд╣реИрдВред рдлрд╝рдВрдХреНрд╢рди рдЬрд┐рддрдирд╛ рдЫреЛрдЯрд╛ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЛрддрд╛ рд╣реИ, рдЙрддрдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рд░реНрдердХ рдирд╛рдо рдЪреБрдирдирд╛ рд╣реИред
рд▓рдВрдмреЗ рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдбрд░реЛ рдорддред рдПрдХ рд▓рдВрдмрд╛, рд╕рд╛рд░реНрдердХ рдирд╛рдо рдПрдХ рдЫреЛрдЯреЗ, рдЕрд╕реНрдкрд╖реНрдЯ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред рдРрд╕реА рдпреЛрдЬрдирд╛ рдЪреБрдиреЗрдВ рдЬреЛ рдлрд╝рдВрдХреНрд╢рди рдирд╛рдо рдореЗрдВ рд╢рдмреНрджреЛрдВ рдХреЛ рдкрдврд╝рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЗрди рд╢рдмреНрджреЛрдВ рд╕реЗ рдПрдХ рдирд╛рдо рдмрдирд╛рдПрдВ рдЬреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред
рдХрд╛рд░реНрдп рддрд░реНрдХ
рдЖрджрд░реНрд╢ рдорд╛рдорд▓реЗ рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рди рддрд░реНрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╢реВрдиреНрдп рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдХ рддрд░реНрдХ (рдПрдХрд╛рддреНрдордХ) рдФрд░ рджреЛ рддрд░реНрдХреЛрдВ (рдмрд╛рдЗрдирд░реА) рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВред рдЬрдм рднреА рд╕рдВрднрд╡ рд╣реЛ рддреАрди рддрд░реНрдХреЛрдВ (рдЯрд░реНрдирд░реА) рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдмрдЪрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЖрдЙрдЯрдкреБрдЯ рддрд░реНрдХ рддрд░реНрдХреЛрдВ рдХреЛ рдЗрдирдкреБрдЯ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рддреЗрдЬреА рд╕реЗ рднреНрд░рдорд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдХреЛрдИ рднреА рддрд░реНрдХреЛрдВ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рддрд░реНрдХреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдкреНрд░рдмрдВрдзрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рддреЛ рдХрдо рд╕реЗ рдХрдо рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдПрдХ рдЗрдирдкреБрдЯ рддрд░реНрдХ рддрдХ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
рд░рд┐рдЯрд░реНрди рдорд╛рди рдХреЗ рдмрдЬрд╛рдп рдЖрдЙрдЯрдкреБрдЯ рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд░реВрдкрд╛рдВрддрд░рдг рдкрд╛рдардХ рдХреЛ рднреНрд░рдорд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдлрд╝рдВрдХреНрд╢рди рдЕрдкрдиреЗ рдЗрдирдкреБрдЯ рддрд░реНрдХ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдкрд░рд┐рдгрд╛рдо
рд░рд┐рдЯрд░реНрди рд╡реИрд▓реНрдпреВ рдореЗрдВ рдкрд╛рд╕ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЭрдВрдбреЗ рддрд░реНрдХ
рддрд░реНрдХ рд╡рд┐рддрд░реНрдХ рдмрджрд╕реВрд░рдд рд╣реИрдВред рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рддрд╛рд░реНрдХрд┐рдХ рдЕрд░реНрде рдкрд╛рд╕ рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рднрдпрд╛рдирдХ рдЖрджрдд рд╣реИред рдпрд╣ рддреБрд░рдВрдд рд╡рд┐рдзрд┐ рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░рддрд╛ рд╣реИ, рдЬреЛрд░ рд╕реЗ рдпрд╣ рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдСрдкрд░реЗрд╢рди рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдзреНрд╡рдЬ рд╕рддреНрдп рд╣реИ, рддреЛ рдПрдХ рдСрдкрд░реЗрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рджреВрд╕рд░рд╛ рдЧрд▓рдд рд╣реИред
рдмрд╛рдЗрдирд░реА рдлрд╝рдВрдХреНрд╢рди
рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рджреЛ рддрд░реНрдХреЛрдВ рдХреЛ рд╕рдордЭрдирд╛ рдПрдХ рдХрдард┐рди рдХрд╛рд░реНрдп рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИред рдмреЗрд╢рдХ, рдХреБрдЫ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ, рдПрдХ рджреЛ-рддрд░реНрдХ рд░реВрдк рдЙрдкрдпреБрдХреНрдд рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЙрд▓рд┐рдВрдЧ рдкреЙрдЗрдВрдЯ p = рдирдпрд╛ рдкреЙрдЗрдВрдЯ (0,0); рдмрд┐рд▓реНрдХреБрд▓ рдЙрдЪрд┐рдд рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рджреЛ рддрд░реНрдХ рдПрдХ рд╣реА рдореВрд▓реНрдп рдХреЗ рдШрдЯрдХ рд╣реИрдВред
рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╕реНрддреБрдПрдБ
рдпрджрд┐ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рджреЛ рдпрд╛ рддреАрди рд╕реЗ рдЕрдзрд┐рдХ рддрд░реНрдХ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП, рддреЛ рдпрд╣ рдЕрддреНрдпрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рддрд░реНрдХ рдЕрд▓рдЧ рд╡рд░реНрдЧ рдореЗрдВ рдкреИрдХ рдХрд┐рдП рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдПред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЛ рдШреЛрд╖рдгрд╛рдУрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
Circle makeCircle(double x, double y, double radius); Circle makeCircle(Point center, double radius);
рдпрджрд┐ рдЪрд░ рдХреЛ рдПрдХ рдкреВрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╕рд╛рде рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЬреИрд╕реЗ x рдФрд░ y рдЪрд░ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ), рддреЛ, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдПрдХ рд╕рд╛рде рд╡реЗ рдПрдХ рдЕрд╡рдзрд╛рд░рдгрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдирд╛рдо рдХреЗ рд╣рдХрджрд╛рд░ рд╣реИрдВред
рдХреНрд░рд┐рдпрд╛ рдФрд░ рдЦреЛрдЬрд╢рдмреНрдж
рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдирд╛рдо рдЪреБрдирдирд╛ рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрд░реНрде, рд╕рд╛рде рд╣реА рдЗрд╕рдХреЗ рддрд░реНрдХреЛрдВ рдХреЗ рдХреНрд░рдо рдФрд░ рдЕрд░реНрде рдХреЛ рд╕рдордЭрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХрд╛рддреНрдордХ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдЙрд╕рдХреЗ рддрд░реНрдХ рдХреЛ рдПрдХ рдкреНрд░рд╛рдХреГрддрд┐рдХ рдХреНрд░рд┐рдпрд╛ / рд╕рдВрдЬреНрдЮрд╛ рдЬреЛрдбрд╝реА рдмрдирд╛рдиреА рдЪрд╛рд╣рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рдкрддреНрд░ рд▓рд┐рдЦрдиреЗ (рдирд╛рдо) рдХреА рдПрдХ рдХреЙрд▓ рдмрд╣реБрдд рдЬрд╛рдирдХрд╛рд░реАрдкреВрд░реНрдг рд▓рдЧрддреА рд╣реИред
рдкрд╛рдардХ рд╕рдордЭрддрд╛ рд╣реИ рдХрд┐ "рдирд╛рдо" рдХреНрдпрд╛ рд╣реИ, рдпрд╣ рдХрд╣реАрдВ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рд╣реИред рдЗрд╕рд╕реЗ рднреА рдмреЗрд╣рддрд░ рд░рд╛рдЗрдЯрдлрд┐рд▓реНрдб (рдирд╛рдо) рд░рд┐рдХреЙрд░реНрдб рд╣реИ, рдЬреЛ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ "рдирд╛рдо" рдХреБрдЫ рд╕рдВрд░рдЪрдирд╛ рдХреЗ "рдлрд╝реАрд▓реНрдб" рдХреЛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред
рдЕрдВрддрд┐рдо рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдирд╛рдо рдореЗрдВ рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдЗрд╕ рд░реВрдк рдореЗрдВ, рддрд░реНрдХ рдирд╛рдо рдлрд╝рдВрдХреНрд╢рди рдирд╛рдо рдореЗрдВ рдПрдиреНрдХреЛрдб рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, assertEquals рдХреЛ assertExpectedEqualsActual (рдЕрдкреЗрдХреНрд╖рд┐рдд, рд╡рд╛рд╕реНрддрд╡рд┐рдХ) рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдХрд╛рдлреА рд╣рдж рддрдХ рддрд░реНрдХреЛрдВ рдХреЗ рдХреНрд░рдо рдХреЛ рдпрд╛рдж рд░рдЦрдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред
рдЖрджреЗрд╢реЛрдВ рдФрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдкреГрдердХреНрдХрд░рдг
рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреБрдЫ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдХреБрдЫ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдПрдХ рд╕рд╛рде рдирд╣реАрдВред рдпрд╛ рддреЛ рдлрд╝рдВрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИ, рдпрд╛ рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рджреЗрддрд╛ рд╣реИред рджреЛ рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреЛ рдорд┐рд▓рд╛рдХрд░ рдЕрдХреНрд╕рд░ рднреНрд░рдо рдкреИрджрд╛ рд╣реЛрддрд╛ рд╣реИред
рдмреНрд▓реЙрдХ рдХреЛ рдкрдХрдбрд╝рдиреЗ / рдкрдХрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ
рдХреЛрд╢рд┐рд╢ / рдкрдХрдбрд╝ рдмреНрд▓реЙрдХ рдмрд╣реБрдд рдмрджрд╕реВрд░рдд рджрд┐рдЦрддреЗ рд╣реИрдВред рд╡реЗ рдХреЛрдб рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рднреНрд░рдорд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдореЗрдВ рдорд┐рд╢реНрд░рдг рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ, рдпрд╣ рдЕрдиреБрд╢рдВрд╕рд╛ рдХреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдЯреНрд░рд╛рдЗ рдФрд░ рдХреИрдЪ рдмреНрд▓реЙрдХреНрд╕ рдХреЗ рдирд┐рдХрд╛рдпреЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдПрдХ рдСрдкрд░реЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдореЗрдВ рддреНрд░реБрдЯрд┐
рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЛ рдПрдХ рдСрдкрд░реЗрд╢рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рддреНрд░реБрдЯрд┐ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдПрдХ рдСрдкрд░реЗрд╢рди рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреБрдЫ рдФрд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ рдХрд┐ рдпрджрд┐ рдлрдВрдХреНрд╢рди рдХреАрд╡рд░реНрдб рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдореМрдЬреВрдж рд╣реИ, рддреЛ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкрд╣рд▓рд╛ рд╢рдмреНрдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдХреИрдЪ / рдЕрдВрдд рдореЗрдВ рдмреНрд▓реЙрдХ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдФрд░ рдХреБрдЫ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрд╣ рдЕрдзреНрдпрд╛рдп 3 рдХрд╛ рд╕рдорд╛рдкрди рдХрд░рддрд╛ рд╣реИред