рдХреЛрдб рдЬреАрд╡рд┐рдд рдФрд░ рдореГрдд рд╣реИред рднрд╛рдЧ рдПрдХ рд╡рд╕реНрддреБрдПрдВ

рдХреЛрдб рдПрдХ рд╕реЛрдЪ рд╣реИред рдПрдХ рд╕рдорд╕реНрдпрд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ, рдФрд░ рдбреЗрд╡рд▓рдкрд░ рд╕реЛрдЪрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдХреИрд╕реЗ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рдХреИрд╕реЗ рдЙрдиреНрд╣реЗрдВ рджреЛрд╕реНрдд рдмрдирд╛рдпрд╛ рдЬрд╛рдП, рдХреИрд╕реЗ рдХрдареЛрд░рддрд╛ рдФрд░ рд╢реБрджреНрдзрддрд╛ рд╣рд╛рд╕рд┐рд▓ рдХреА рдЬрд╛рдП рдФрд░ рдХреИрд╕реЗ рдПрдХ рд╡реНрдпрд╡рд╕рд╛рдп рдХрд╛ рдмрджрд▓рд╛ рд▓рд┐рдпрд╛ рдЬрд╛рдПред рдЕрднреНрдпрд╛рд╕, рддрдХрдиреАрдХ, рд╕рд┐рджреНрдзрд╛рдВрдд, рдкреИрдЯрд░реНрди рдФрд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг - рд╕рдм рдХреБрдЫ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╕рдм рдХреБрдЫ рдпрд╛рдж рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред


рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рд╣реА, рд╣рдо рдкреНрд░рдмрдВрдзрдХреЛрдВ, рд╕рд╣рд╛рдпрдХреЛрдВ, рд╕реЗрд╡рд╛рдУрдВ, рдирд┐рдпрдВрддреНрд░рдХреЛрдВ, рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ, рдПрдбрд╛рдкреНрдЯрд░реЛрдВ, рдЧреЗрдЯрд░реНрд╕, рдмрд╕рдиреЗ рд╡рд╛рд▓реЛрдВ рдФрд░ рдЕрдиреНрдп рдмреБрд░реА рдЖрддреНрдорд╛рдУрдВ рдХреА рд╡реНрдпрд╛рдкрдХ рдорд╣рд╛рдорд╛рд░реА рджреЗрдЦрддреЗ рд╣реИрдВ: рдпрд╣ рд╕рдм рдореГрдд рдХреЛрдб рд╣реИред рд╡рд╣ рд▓рд╛рддреА рд╣реИ рдФрд░ рдЪреЛрджрддреА рд╣реИред


рдореИрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓рдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВ: рдЖрдкрдХреЛ рдПрдХ рдкреНрд░рд╛рдХреГрддрд┐рдХ рднрд╛рд╖рд╛ рдореЗрдВ рдкрд╛рда рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдФрд░ рддрджрдиреБрд╕рд╛рд░ рдЙрдирдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдХреИрд╕реЗ рдФрд░ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ - рд▓реЗрдЦ рдореЗрдВред


рд╕рд╛рдордЧреНрд░реА рдХреА рдЪрдХреНрд░ рддрд╛рд▓рд┐рдХрд╛


  1. рд╡рд╕реНрддреБрдПрдВ
  2. рдХреНрд░рд┐рдпрд╛ рдФрд░ рдЧреБрдг
  3. рдкрд╛рда рдХреЗ рд░реВрдк рдореЗрдВ рдХреЛрдб

рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛


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


рдЖрдЦрд┐рд░рдХрд╛рд░, рдпрд╣ рдкрд╛рда рд╣реИред


рдкрд╛рда рдХреЗ рд░реВрдк рдореЗрдВ рдХреЛрдб рдХрд╛ рд╕реМрдВрджрд░реНрдпрд╢рд╛рд╕реНрддреНрд░ рдЪрдХреНрд░ рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╖рдп рд╣реИред рдпрд╣рд╛рдБ рд╕реМрдВрджрд░реНрдпрд╢рд╛рд╕реНрддреНрд░ рдПрдХ рдЧрд┐рд▓рд╛рд╕ рд╣реИ рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рдо рдЪреАрдЬреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рдФрд░ рдХрд╣рддреЗ рд╣реИрдВ, рд╣рд╛рдБ, рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ, рд╣рд╛рдБ, рдпрд╣ рд╕реБрдВрджрд░ рд╣реИред


рд╕реБрдВрджрд░рддрд╛ рдФрд░ рд╕рдордЭ рдХреЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╢рдмреНрджреЛрдВ рдХрд╛ рдмрд╣реБрдд рдорд╣рддреНрд╡ рд╣реИред рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП: "рдлрд┐рд▓рд╣рд╛рд▓, рдореЗрд░реА рдзрд╛рд░рдгрд╛рдПрдВ рд░рдХреНрдд рдореЗрдВ рдЗрдереЗрдиреЙрд▓ рдХреЗ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХреЗ рдХрд╛рд░рдг рд╕реБрд╕реНрдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИрдВ" рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рд╣реИ: "рдореИрдВ рдирд╢реЗ рдореЗрдВ рдерд╛ ред "


рд╣рдо рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реИрдВ рдЬреЛ рд▓рдЧрднрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╢рдмреНрджреЛрдВ рд╕реЗ рдмрдиреЗ рд╣реИрдВред


рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдкрдХреЛ рдПрдХ "рдЪрд░рд┐рддреНрд░ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдкрд╛рд╕ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдФрд░ рдорди рд╣реИ, рд╡рд╣ рдЪрд▓рддрд╛ рд╣реИ, рд╣рдорд▓рд╛ рдХрд░рддрд╛ рд╣реИ, рдордВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ," рдФрд░ рдЖрдк рддреБрд░рдВрдд рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ: рд╡рд╕реНрддреБрдПрдВ (рдЪрд░рд┐рддреНрд░, рд╕реНрд╡рд╛рд╕реНрдереНрдп, рдорди, рдордВрддреНрд░), рдХреНрд░рд┐рдпрд╛рдПрдВ (рдЪрд▓рдирд╛, рд╣рдорд▓рд╛, рдЙрдкрдпреЛрдЧ) рдФрд░ рдЧреБрдг рд╣реИрдВ рдЪрд░рд┐рддреНрд░ рдореЗрдВ рд╕реНрд╡рд╛рд╕реНрдереНрдп, рдорди, рдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдордВрддреНрд░ рдХреА рдЧрддрд┐ рд╣реИ) - рдпреЗ рд╕рднреА рдирд╛рдо рд╣реЛрдВрдЧреЗ: рдХрдХреНрд╖рд╛рдПрдВ, рдХрд╛рд░реНрдп, рд╡рд┐рдзрд┐рдпрд╛рдВ, рдЪрд░, рдЧреБрдг рдФрд░ рдХреНрд╖реЗрддреНрд░, рдПрдХ рд╢рдмреНрдж рдореЗрдВ, рд╡рд╣ рд╕рдм рдЬреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реЛ рдЬрд╛рддреА рд╣реИред


рд▓реЗрдХрд┐рди рдореИрдВ рд╕рдВрд░рдЪрдирд╛рдУрдВ, рдЧреБрдгреЛрдВ рд╕реЗ рдлрд╝реАрд▓реНрдбреНрд╕, рдФрд░ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЕрд▓рдЧ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛: рдПрдХ рдХрдерд╛ рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдЪрд░рд┐рддреНрд░ рддрдХрдиреАрдХреА рд╡рд┐рд╡рд░рдгреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдХрд┐ рдЗрд╕реЗ рдпрд╛ рддреЛ рдПрдХ рд╕рдВрджрд░реНрдн рдпрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред рдПрдХ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдЕрд▓рдЧ рдмрд╛рдд: рдХрд┐ рдпрд╣ рдПрдХ рдЪрд░рд┐рддреНрд░ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЙрд╕реЗ Hero (рдпрд╛ Character ) рдХрд╣рд╛ рд╣реИ, рди рдХрд┐ HeroData рдпрд╛ HeroUtils ред


рдЕрдм рдореИрдВ рдмрд╣реБрдд рд╣реА рд╕реМрдВрджрд░реНрдпрдмреЛрдз рдХрд╛ рдЧрд┐рд▓рд╛рд╕ рдЙрдард╛рдКрдВрдЧрд╛ рдФрд░ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ рдЖрдЬ рдХреБрдЫ рдХреЛрдб рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ рдФрд░ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА рдХреНрдпреЛрдВ рд╣реИред


рд╡рд╕реНрддреБрдПрдВ


рд╕реА # рдореЗрдВ (рдФрд░ рди рдХреЗрд╡рд▓), рд╡рд╕реНрддреБрдУрдВ - рд╡рд░реНрдЧреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдЬреЛ рдвреЗрд░ рдкрд░ рд░рдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рд╡рд╣рд╛рдВ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рд░рд╣рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░ рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред рдпрд╣ рд╕реНрдЯреИрдХ рдпрд╛ рд╕рд╛рд╣рдЪрд░реНрдп рд╕рд░рдгрд┐рдпреЛрдВ рдпрд╛ рдХреБрдЫ рдФрд░ рдкрд░ рднреА рд╕рдВрд░рдЪрдирд╛рдПрдВ рдмрдирд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИрдВред рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╡реЗ рд╣реИрдВ: рд╡рд░реНрдЧ рдХреЗ рдирд╛рдо, рд╕рдВрдЬреНрдЮрд╛ред


рдХреЛрдб рдореЗрдВ рдирд╛рдо, рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдирд╛рдореЛрдВ рдХреА рддрд░рд╣, рднреНрд░рд╛рдордХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рдВ, рдФрд░ рдЖрдк рд╢рд╛рдпрдж рд╣реА рдХрднреА рдПрдХ рдмрджрд╕реВрд░рдд рдирд╛рдо рджреЗрдЦрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рд╕реБрдВрджрд░ рд╡рд╕реНрддреБред рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рдпрд╣ рдПрдХ Manager ред


рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЗ рдмрдЬрд╛рдп рдкреНрд░рдмрдВрдзрдХ


UserService , AccountManager , DamageUtils , MathHelper , GraphicsManager , GameManager , VectorUtil ред


рдпрд╣ рд╕рдЯреАрдХрддрд╛ рдФрд░ рдореВрд░реНрддрддрд╛ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдпрд╣рд╛рдВ рд╣рд╛рд╡реА рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдЕрд╕реНрдкрд╖реНрдЯ рд╣реИ, рдЬреЛ рдХреЛрд╣рд░реЗ рдореЗрдВ рдХрд╣реАрдВ рдЫреЛрдбрд╝ рд░рд╣рд╛ рд╣реИред рдРрд╕реЗ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП, рдмрд╣реБрдд рдХреБрдЫ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИред


рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рднреА GameManager рдЖрдк рдХреБрдЫ рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЦреЗрд▓ рдФрд░ рдЦреЗрд▓ рддрд░реНрдХ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдЫрд╣ рдорд╣реАрдиреЗ рдмрд╛рдж, рдПрдХ рддрдХрдиреАрдХреА рд╡рд┐рд▓рдХреНрд╖рдгрддрд╛ рдЖрдПрдЧреАред


рдпрд╛, рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдлреЗрд╕рдмреБрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕рднреА рдХреЛрдб рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд░рдЦреЗ рдЧрдП: FacebookManager рдпрд╛ FacebookService ? рдпрд╣ рд╕рд░рд▓рддрд╛ рд╕реЗ рд╕рд░рд▓ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдЕрд╕реНрдкрд╖реНрдЯ рдЗрд░рд╛рджрд╛ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдЕрд╕реНрдкрд╖реНрдЯ рдирд┐рд░реНрдгрдп рд▓реЗрддрд╛ рд╣реИ ред рд╕рд╛рде рд╣реА, рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдлреЗрд╕рдмреБрдХ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рдорд┐рддреНрд░, рд╕рдВрджреЗрд╢, рд╕рдореВрд╣, рд╕рдВрдЧреАрдд, рд░реБрдЪрд┐рдпрд╛рдВ рдЖрджрд┐ рд╣реИрдВред рдкрд░реНрдпрд╛рдкреНрдд рд╢рдмреНрдж!


рди рдХреЗрд╡рд▓ рдкрд░реНрдпрд╛рдкреНрдд рд╢рдмреНрдж рд╣реИрдВ: рд╣рдо рдЕрднреА рднреА рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдХреЗрд╡рд▓ рд╕рд╛рдзрд╛рд░рдг рднрд╛рд╖рдг рдореЗрдВ, рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рдмреАрдЪ рдирд╣реАрдВред


рдФрд░ рдпрд╣ GitUtils рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди IRepository , ICommit , IBranch ; ExcelHelper рдирд╣реАрдВ, рд▓реЗрдХрд┐рди ExcelDocument , ExcelSheet ; GoogleDocsService рдирд╣реАрдВ, рд▓реЗрдХрд┐рди GoogleDocs ред


рд╣рд░ рд╡рд┐рд╖рдп рдХреНрд╖реЗрддреНрд░ рд╡рд╕реНрддреБрдУрдВ рд╕реЗ рднрд░рд╛ рд╣реЛрддрд╛ рд╣реИред "рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╡рд┐рд╢рд╛рд▓ voids рджреНрд╡рд╛рд░рд╛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ " , "рджрд┐рд▓ рдЧреБрд╕реНрд╕реЗ рд╕реЗ рдзрдбрд╝рдХ рд░рд╣рд╛ рдерд╛" , "рдШрд░ рдЦрдбрд╝рд╛ рдерд╛" - рд╡рд╕реНрддреБрдПрдВ рдХрд╛рд░реНрдп рдХрд░рддреА рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рд▓рдЧрддрд╛ рд╣реИ, рд╡реЗ рдХрд▓реНрдкрдирд╛ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ; рд╡реЗ рдпрд╣рд╛рдВ рдХрд╣реАрдВ рднреА рд╣реИрдВ, рдореВрд░реНрдд рдФрд░ рдШрдиреЗ рд╣реИрдВред


рдЙрд╕реА рд╕рдордп, рдЖрдк рдХрднреА-рдХрднреА рдЗрд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ: Microsoft/calculator рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ - SetPrimaryDisplay рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде: SetPrimaryDisplay , MaxDigitsReached , SetParentDisplayText , OnHistoryItemAdded ...


(рдлрд┐рд░ рднреА, рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдПрдХ рдмрд╛рд░ UtilsManager рджреЗрдЦрд╛ UtilsManager ...)


рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╣реЛрддрд╛ рд╣реИ: рдореИрдВ рдирдП рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд╕рд╛рде List<> рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдФрд░ ListUtils рдпрд╛ ListHelper рдкреИрджрд╛ рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреЗрд╡рд▓ рд╡рд┐рд╕реНрддрд╛рд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рдФрд░ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╣реИ - ListExtensions : рд╡реЗ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВ, рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рд╕реЗ рдбрдВрдк рдирд╣реАрдВред


рдХреБрдЫ рдЕрдкрд╡рд╛рджреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ Post рдХреЗ рд░реВрдк рдореЗрдВ OfficeManager ред


рдмрд╛рдХреА рдХреЗ рд▓рд┐рдП ... рдкреНрд░реЛрдЧреНрд░рд╛рдореНрд╕ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЕрдЧрд░ рдЙрдирдореЗрдВ рдРрд╕реЗ рд╢рдмреНрдж рд╣реИрдВред


рд╡рд╕реНрддреБ рдХреЗ рдмрджрд▓реЗ рдХреНрд░рд┐рдпрд╛


IProcessor , ILoader , ISelector , IFilter , IProvider , ISetter , ICreator , IOpener , IHandler ; IEnableable , IInitializable , IUpdatable , ICloneable , IDrawable , ILoadable , IOpenable , ISettable , IConvertible ред


рдпрд╣рд╛рдВ, рд╕рд╛рд░ рдХрд╛ рд╕рд╛рд░ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ, рдПрдХ рдЕрд╡рдзрд╛рд░рдгрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдХреЛрдб рдлрд┐рд░ рд╕реЗ рдЕрдкрдиреА рдХрд▓реНрдкрдирд╛ рдФрд░ рдкрдардиреАрдпрддрд╛ рдЦреЛ рджреЗрддрд╛ рд╣реИ, рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд╢рдмреНрдж рдХреЛ рдПрдХ рдХреГрддреНрд░рд┐рдо рджреНрд╡рд╛рд░рд╛ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рдмрд╣реБрдд рдЖрдЬреАрд╡рд┐рдХрд╛ ISequence , IEnumerable рдирд╣реАрдВ; IBlueprint , IBlueprint рдирд╣реАрдВ; IButtonPainter , IButtonPainter рдирд╣реАрдВ; IPredicate , IFilter рдирд╣реАрдВ; IGate , IGate рдирд╣реАрдВ; IToggle , IToggle рдирд╣реАрдВред


рдПрдХ рдЕрдЪреНрдЫреА рдХрд╣рд╛рдиреА рдкрд╛рддреНрд░реЛрдВ рдФрд░ рдЙрдирдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рддреА рд╣реИ, рди рдХрд┐ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХрд┐ рдХреИрд╕реЗ рдирд┐рд░реНрдорд╛рддрд╛ рдмрдирд╛рддрд╛ рд╣реИ, рдмрд┐рд▓реНрдбрд░ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЪрд┐рддреНрд░рдХрд╛рд░ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдПрдХ рдХреНрд░рд┐рдпрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХ рд╡рд╕реНрддреБ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреА рд╣реИред ListSorter рдПрдХ SortedList рдирд╣реАрдВ рд╣реИред


DirectoryCleaner рд▓реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдХреЛ рд╕рд╛рдл рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╡рд╕реНрддреБред рдХреНрдпрд╛ рдпрд╣ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд╣реИ? рд▓реЗрдХрд┐рди рд╣рдо рдХрднреА рдирд╣реАрдВ рдХрд╣рддреЗ рд╣реИрдВ: "рдлрд╝реЛрд▓реНрдбрд░ рдХреНрд▓реАрдирд░ рдХреЛ рдбреА: / рдЯреЗрд╕реНрдЯ рдХреЛ рд╕рд╛рдл рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдВ" , рд╣рдореЗрд╢рд╛: "рдХреНрд▓реАрди рдбреА: / рдЯреЗрд╕реНрдЯ" , рдЗрд╕рд▓рд┐рдП Clean рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде Directory рдЕрдзрд┐рдХ рдкреНрд░рд╛рдХреГрддрд┐рдХ рдФрд░ рдХрд░реАрдм рд▓рдЧрддреА рд╣реИред


рдПрдХ рдЕрдзрд┐рдХ рдЬреАрд╡рдВрдд рдорд╛рдорд▓рд╛ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ: .NET рд╕реЗ FileSystemWatcher рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИред рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВ рдкреВрд░реЗ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ, рдпрджрд┐ рдкрд░рд┐рд╡рд░реНрддрди рд╕реНрд╡рдпрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рд╣реБрдП? рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрдиреНрд╣реЗрдВ рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд╕рд╛рде рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ Directory рдпрд╛ File ( File рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде Changes рдЧреБрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдореЗрдВ рднреА рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред


рдРрд╕реЗ рдореМрдЦрд┐рдХ рдирд╛рдо Strategy рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди рдХреЛ рд╕рд╣реА рдард╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдд рд╣реЛрддреЗ рд╣реИрдВ, рдЬреЛ "рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдкрд░рд┐рд╡рд╛рд░ рдХреЛ рдПрдирдХреИрдкреНрд╕реБрд▓реЗрдЯ" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢ рджреЗрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЕрдЧрд░ "рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдкрд░рд┐рд╡рд╛рд░" рдХреЗ рдмрдЬрд╛рдп рд╣рдо рдПрдХ рдкреНрд░рд╛рдорд╛рдгрд┐рдХ рд╡рд╕реНрддреБ рдкрд╛рддреЗ рд╣реИрдВ рдЬреЛ рдХрд╣рд╛рдиреА рдореЗрдВ рдореМрдЬреВрдж рд╣реИ, рддреЛ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рд░рдгрдиреАрддрд┐ рдХреЗрд╡рд▓ рдПрдХ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рд╣реИред


рдЗрди рдФрд░ рдХрдИ рдЕрдиреНрдп рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рджрд░реНрд╢рди рдХреА рдУрд░ рдореБрдбрд╝рддреЗ рд╣реИрдВред


рдЕрд╕реНрддрд┐рддреНрд╡ рдкреВрд░реНрд╡ рд╕рд╛рд░ рд╣реИ


MethodInfo , ItemData , AttackOutput , CreationStrategy , StringBuilder , LogBehaviour , LogBehaviour ред


рдРрд╕реЗ рдирд╛рдо рдПрдХ рдмрд╛рдд рд╕реЗ рдПрдХрдЬреБрдЯ рд╣реЛрддреЗ рд╣реИрдВ: рдЙрдирдХрд╛ рд╣реЛрдирд╛ рд╡рд┐рд╢реЗрд╖ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред


рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдХрд╛рд░реНрдп рдХреЗ рд╕рд╛рде рдЬрд▓реНрджреА рд╕реЗ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░рддрд╛ рд╣реИ: рдХреБрдЫ рдЧрд╛рдпрдм рд╣реИ рдпрд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИред рдлрд┐рд░ рдЖрдк рд╕реЛрдЪрддреЗ рд╣реИрдВ: "рдПрдХ рдЪреАрдЬ рдЬреЛ рдЕрдм рдПрдХреНрд╕ рдХрд░ рд╕рдХрддреА рд╣реИ рд╡рд╣ рдореЗрд░реА рдорджрдж рдХрд░реЗрдЧреА" - рдпрд╣ рдЗрд╕реА рддрд░рд╣ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреА рдХрд▓реНрдкрдирд╛ рд╣реИред рдлрд┐рд░, "рдбреВ" X рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, XImpl рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдпрд╣ рдЗрдХрд╛рдИ рдХреИрд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред


рдЗрд╕рд▓рд┐рдП, IArrayItem рдмрдЬрд╛рдп, IIndexedItem рдпрд╛ IItemWithIndex рдЕрдзрд┐рдХ рдЖрдо рд╣реИ, рдпрд╛, рдХрд╣рд┐рдП, рдкреНрд░рддрд┐рдмрд┐рдВрдм API рдореЗрдВ, рд╡рд┐рдзрд┐ ( Method ) рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЗрд╡рд▓ рдЬрд╛рдирдХрд╛рд░реА рджреЗрдЦрддреЗ рд╣реИрдВ ( MethodInfo )ред


рдПрдХ рдФрд░ рдЕрдзрд┐рдХ рд╕рд╣реА рддрд░реАрдХрд╛: рдЕрд╕реНрддрд┐рддреНрд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд╕рд╛рде рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛, рдПрдХ рдРрд╕реА рдЗрдХрд╛рдИ рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдВ рдЬреЛ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рддреА рд╣реИ, рдФрд░, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЗрд╕рдХреА рдкреНрд░рдХреГрддрд┐ рд╣реИ, рдЕрдиреНрдпред


рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡реЗ рдордзреНрдпрд╡рд░реНрддреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ MutableString рдмрд┐рдирд╛ рдЯрд╛рдЗрдк string рдХреЗ рдореВрд▓реНрдп рдХреЛ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ - рдпрд╣ string рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╕реАрдзрд╛ рд╕рдорд╛рдзрд╛рди рдирд┐рдХрд▓рд╛, рдЬрдмрдХрд┐, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рд╣реИ - MutableString ред


рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдпрд╛рдж рдХрд░реЗрдВ: DirectoryRenamer рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЬреИрд╕реЗ рд╣реА рдЖрдк Directory рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╕реЗ рд╕рд╣рдордд рд╣реЛрддреЗ рд╣реИрдВ, рдХрд╛рд░реНрд░рд╡рд╛рдИ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реЛрддреА рд╣реИ, рдЖрдкрдХреЛ рдХреЛрдб рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рдзрд┐ рдирд╣реАрдВ рдорд┐рд▓реА рд╣реИ ред


рдпрджрд┐ рдЖрдк рдпрд╣ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рддрд╛рд▓рд╛ рдХреИрд╕реЗ рд▓реЗрдирд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ ILockBehaviour рдпрд╛ ILockStrategy , рдЬреЛ рдХрд┐ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ - ILock ( Acquire рдкрджреНрдзрддрд┐ рдХреЗ рд╕рд╛рде рдЬреЛ IDisposable рдпрд╛ ICriticalSection ( Enter рд╕рд╛рде)ред


рдЗрд╕рдореЗрдВ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ Data , Info , Output , Input , Args , Args (рдХрдо рдЕрдХреНрд╕рд░ State ) рд╢рд╛рдорд┐рд▓ рд╣реИрдВ - рдРрд╕реА рд╡рд╕реНрддреБрдПрдВ рдЬреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд░рд╣рд┐рдд рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдПрдХрддрд░рдлрд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рдерд╛ред


рдЬрд╣рд╛рдВ рдЕрд╕реНрддрд┐рддреНрд╡ рдкреНрд░рд╛рдердорд┐рдХ рд╣реИ, рднрд╛рдЧрдлрд▓ рд╕рд╛рдорд╛рдиреНрдп рдХреЗ рд╕рд╛рде рдорд┐рд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдирд╛рдо рднреНрд░рд╛рдордХ рд╣реИрдВ - рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрдврд╝рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЪрд░рд┐рддреНрд░ рдХрд╣рд╛рдВ рдЧрдпрд╛ рдФрд░ рдХреЗрд╡рд▓ рдЙрд╕рдХрд╛ Data рдХреНрдпреЛрдВ рд╣реИред


рд╡рд┐рдЪрд┐рддреНрд░ рд╡рд░реНрдЧреАрдХрд░рдг


CalculatorImpl , AbstractHero , ConcreteThing , CharacterBase ред


рдЙрдкрд░реЛрдХреНрдд рд╡рд░реНрдгрд┐рдд рд╕рдорд╛рди рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рд╣рдо рдХрднреА-рдХрднреА рдЙрди рд╡рд╕реНрддреБрдУрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рдПрдХ рдЬрдЧрд╣ рдареАрдХ рдЗрдВрдЧрд┐рдд рдХреА рдЧрдИ рд╣реИред рдПрдХ рдмрд╛рд░ рдлрд┐рд░, рдЕрд╕реНрддрд┐рддреНрд╡ рдЖрдЧреЗ рдмрдврд╝рддрд╛ рд╣реИ, рдлрд┐рд░ рд╕реЗ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рддрддреНрдХрд╛рд▓ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдХреЛрдб рдореЗрдВ рдЬрд▓реНрджрдмрд╛рдЬреА рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдкрд░рд┐рдгрд╛рдореЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдП рдмрд┐рдирд╛ред


рдЖрдЦрд┐рд░рдХрд╛рд░, рдХреНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╡реНрдпрдХреНрддрд┐ ( Human ) рд╣реИ - рдЖрдзрд╛рд░ рд╡реНрдпрдХреНрддрд┐ ( HumanBase ) рдХрд╛ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░реА? рд▓реЗрдХрд┐рди рдпрд╣ рдХреИрд╕реЗ рд╣реЛрддрд╛ рд╣реИ рдЬрдм Item AbstractItem рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ?


рдХрднреА-рдХрднреА рд╡реЗ рдпрд╣ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ Character рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреА "рдХрдЪреНрдЪреА" рд╕рдорд╛рдирддрд╛ рд╣реИ - CharacterRaw ред


Impl , Abstract , Custom , Base , Concrete , Internal , Raw - рдЕрд╕реНрдерд┐рд░рддрд╛ рдХрд╛ рд╕рдВрдХреЗрдд, рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреА рдЕрд╕реНрдкрд╖реНрдЯрддрд╛, рдЬреЛ рдкрд╣рд▓реЗ рджреГрд╢реНрдп рд╕реЗ рдмрдВрджреВрдХ рдХреА рддрд░рд╣, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдмрд╛рдж рдореЗрдВ рд╢реВрдЯ рдХрд░реЗрдЧреАред


рджреБрд╣рд░рд╛рд╡


рдиреЗрд╕реНрдЯреЗрдб рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде, рдпрд╣ рд╣реЛрддрд╛ рд╣реИ: RepositoryItem WindowState Repository , WindowState рдЗрди Window , HeroBuilder рдореЗрдВ Hero ред


рдЕрд░реНрде рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдореЗрдВ рдХрдЯреМрддреА, рджреЛрд╖реЛрдВ рдХреЛ рдмрдврд╝рд╛рддреА рд╣реИ, рдФрд░ рдХреЗрд╡рд▓ рдкрд╛рда рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдореЗрдВ рдпреЛрдЧрджрд╛рди рдХрд░рддреА рд╣реИред


рдирд┐рд░рд░реНрдердХ рднрд╛рдЧ


рдереНрд░реЗрдбреНрд╕ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, ManualResetEvent рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдХреНрд╕рд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд API рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:


 public class ManualResetEvent { //   тАФ  `EventWaitHandle`. void Set(); void Reset(); bool WaitOne(); } 

рд╣рд░ рдмрд╛рд░, рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рдпрд╛рдж рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ Set Reset (рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╡реНрдпрд╛рдХрд░рдг) рд╕реЗ рдХреИрд╕реЗ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдзрд╛рд░рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдПрдХ "рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд░реАрд╕реЗрдЯ рдШрдЯрдирд╛" рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХреНрдпрд╛ рд╣реИред


рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕реЗ рджреВрд░ рд░реВрдкрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ (рд▓реЗрдХрд┐рди рд░реЛрдЬрдорд░реНрд░рд╛ рдХреА рдЬрд┐рдВрджрдЧреА рдХреЗ рдХрд░реАрдм):


 public class ThreadGate { void Open(); void Close(); bool WaitForOpen(); } 

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рднреНрд░рдорд┐рдд рд╣реЛрдиреЗ рдХреА рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ рд╣реИ!


рдХрднреА-рдХрднреА рдпрд╣ рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ: рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдХрд┐ рдЖрдЗрдЯрдо рдХреЗрд╡рд▓ Items рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ ItemsList рдпрд╛ ItemsDictionary !


рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ ItemsList рдордЬрд╝реЗрджрд╛рд░ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╕реНрдкреНрд░рд┐рдВрдЧ рд╕реЗ AbstractInterceptorDrivenBeanDefinitionDecorator ItemsList ред рдЗрд╕ рдирд╛рдо рдХреЗ рд╢рдмреНрдж рдПрдХ рд▓рддреНрддрд╛ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдПрдХ рд╡рд┐рд╢рд╛рд▓рдХрд╛рдп рд░рд╛рдХреНрд╖рд╕ рд╕рд┐рд▓рдирд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ ... рдпрджрд┐ рдпрд╣ рдПрдХ рд░рд╛рдХреНрд╖рд╕ рд╣реИ, рддреЛ рдлрд┐рд░ рдХреНрдпрд╛ рд╣реИ рдЖрд╢рд╛ рдХреА рд╡рд┐рд░рд╛рд╕рдд ред


рд╡рд░реНрдЧ рдФрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдирд╛рдореЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдЕрдХреНрд╕рд░ рдЪрд░ рдпрд╛ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдЕрддрд┐рд░реЗрдХ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддрд╛ рд╣реИред


рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рдХрд╛рд░ IOrdersRepository рдПрдХ рдХреНрд╖реЗрддреНрд░ рдХреЛ IOrdersRepository рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рднрдВрдбрд╛рд░ рджреНрд╡рд╛рд░рд╛ рдЖрджреЗрд╢ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ? рд╕рдм рдХреЗ рдмрд╛рдж, рдмрд╣реБрдд рдЖрд╕рд╛рди - _orders ред


рдРрд╕рд╛ рднреА рд╣реЛрддрд╛ рд╣реИ рдХрд┐ LINQ рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ, рд╡реЗ lambda рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдкреВрд░реНрдг рддрд░реНрдХ рдирд╛рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Player.Items.Where(item => item.IsWeapon) , рд╣рд╛рд▓рд╛рдБрдХрд┐ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рдЖрдЗрдЯрдо рдХреЛ Player.Items рдХреЛ Player.Items рд╕рдордЭ Player.Items ред рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдореИрдВ рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА рдЪрд░рд┐рддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ - x : Player.Items.Where(x => x.IsWeapon) ( y рд▓рд┐рдП рдирд┐рд░рдВрддрд░рддрд╛ рдХреЗ рд╕рд╛рде, z рдЕрдЧрд░ рдпреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рдХрд╛рд░реНрдп рд╣реИрдВ)ред


рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░


рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ, рдЗрд╕ рддрд░рд╣ рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рд╕рд╛рде рдЙрджреНрджреЗрд╢реНрдп рд╕рддреНрдп рдХреЛ рдЦреЛрдЬрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЛрдИ рдХрд╣реЗрдЧрд╛: Service рд▓рд┐рдЦрдирд╛ рдпрд╛ рди рд▓рд┐рдЦрдирд╛ рдПрдХ рдореВрдХ рдмрд┐рдВрджреБ рд╣реИ, рдорд╣рддреНрд╡рд╣реАрди, рдЕрдЪреНрдЫрд╛ рд╕реНрд╡рд╛рдж, рдФрд░ рдЕрдЧрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рддреЛ рдХреНрдпрд╛ рдлрд░реНрдХ рдкрдбрд╝рддрд╛ рд╣реИ?


рд▓реЗрдХрд┐рди рдЖрдк рдбрд┐рд╕реНрдкреЛрдЬреЗрдмрд▓ рдХрдк рд╕реЗ рдкреА рд╕рдХрддреЗ рд╣реИрдВ!


рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдорд╛рд░реНрдЧ рдлреЙрд░реНрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рд╣рд┐рдд рд╣реИ, рдФрд░ рдпрджрд┐ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдкрд╛рда рдореЗрдВ, рд╕рдм рдХреБрдЫ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рд╢реИрд▓реА, рд╡рд╛рддрд╛рд╡рд░рдг рдФрд░ рддрд╛рд▓ рдЦреБрдж рдХреЛ рднреНрд░рдорд┐рдд рдирд╣реАрдВ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдордЭ рдФрд░ рдХреНрд╖рдорддрд╛ рд╕реЗред


рд╡рд╕реНрддреБ рдХрд╛ рдирд╛рдо рди рдХреЗрд╡рд▓ рдЙрд╕рдХрд╛ рдЪреЗрд╣рд░рд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рд╕реНрд╡рдпрдВ рднреА рд╣реИред рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдИрдерд░ рдпрд╛ рд╕рдВрддреГрдкреНрдд, рд╕рд╛рд░ рдпрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ, рд╕реВрдЦрд╛ рдпрд╛ рдПрдирд┐рдореЗрдЯреЗрдб рд╣реЛрдЧрд╛ред рдирд╛рдо рдмрджрд▓ рд░рд╣рд╛ рд╣реИ - рд╕рд╛рдордЧреНрд░реА рдмрджрд▓ рд░рд╣реА рд╣реИред


рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рд╣рдо рдЗрд╕реА рд╕рд╛рдордЧреНрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рдпрд╣ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред

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


All Articles