рдпрджрд┐ рдЖрдк рдбрд┐рдЬрд╛рдЗрди рдкрд░ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда (рдпрд╛ рдпреЛрдЧреНрдп) рдкреБрд╕реНрддрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджрд╕ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рдкреВрдЫрддреЗ рд╣реИрдВ, рддреЛ рдЙрдирдореЗрдВ рд╕реЗ рдХрдо рд╕реЗ рдХрдо 6 рдирд╛рдо рдмреЙрдм рдорд╛рд░реНрдЯрд┐рди рдХреА
рдкреБрд╕реНрддрдХ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ, рдкреИрдЯрд░реНрди рдФрд░ рдлреБрд░реНрддреАрд▓реА рд╡рд┐рдХрд╛рд╕ рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдирд╛рдо рджреЗрдВрдЧреЗред рдЕрдЧрд░, рдЗрд╕рдХреЗ рдмрд╛рдж, рд╡реЗ рдЙрдиреНрд╣реЗрдВ "рдЕрдВрдХрд▓" рдмреЙрдм рдХреЗ рд▓реЗрдЦрди рдореЗрдВ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рдмрд┐рдВрджреБрдУрдВ рдкрд░ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдкрдиреЗ рдорд╛рдереЗ рдХреЛ рдЫрд▓рдиреА рдХрд░реЗрдВрдЧреЗ рдФрд░ рдХреБрдЫ рд╣рдж рддрдХ рдЕрдкрдиреЗ рдорди рдХреЛ рдмрджрд▓ рджреЗрдВрдЧреЗред
рдЗрд╕ рдиреЛрдЯ рдХреЛ рдкрдврд╝рддреЗ рд╕рдордп, рд╕рд╛рдорд╛рдиреНрдп рдЬреНрдЮрд╛рди рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдФрд░ рдЗрд╕реЗ рдкрд╡рд┐рддреНрд░ рдкрд░ рд╣рдорд▓рд╛ рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдЦрд┐рд░рдХрд╛рд░, рдпрд╣ рдХрд╛рдлреА рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдЗрд╕реЗ рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдкрдврд╝рд╛ рдерд╛, рдЬрдм рдЕрднрд┐рднреВрдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рд╕реЗ рдЖрдкрдХреЗ рд╣рд╛рдереЛрдВ рдкрд░ рдХрдо рдирд┐рд╢рд╛рди рдереЗ, рдФрд░ рдЖрдкрдХреЗ рдШреБрдЯрдиреЗ "рдкреИрдЯрд░реНрди" рд╢рдмреНрдж рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдХрд╛рдВрдк рдЧрдП рдереЗред рддреЛ рд╢рд╛рдпрдж рдЖрдкрдХреЛ рдПрдХ рдирдП рдЕрдиреБрднрд╡ рдХреА рдКрдВрдЪрд╛рдИ рд╕реЗ "рдХреНрд▓рд╛рд╕рд┐рдХреНрд╕" рдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП?
рдкреБрд╕реНрддрдХ рдХреЗ рдкрд╣рд▓реЗ рдкрдиреНрдиреЛрдВ рд╕реЗ, рдорд╛рд░реНрдЯрд┐рдиреНрд╕ рдиреЗ рдкреНрд░рд╢рдВрд╕рдХ рдХреЛ рдмрд╣реБрдд рд╣рд▓реНрдХреЗ рдврдВрдЧ рд╕реЗ рдлреЗрдВрдХ рджрд┐рдпрд╛, рдкреБрд╕реНрддрдХ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╢реБрд░реВ рдХрд┐рдпрд╛:
тАЬрдореЗрд░рд╛ рдЕрдиреБрднрд╡ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ .NET рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЕрдХреНрд╕рд░ рдЬрд╛рд╡рд╛ рдпрд╛ C ++ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рд╡рд╛рд▓реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдордЬреЛрд░ рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЕрдкрд╡рд╛рдж рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдмрд╛рд░-рдмрд╛рд░ рдЕрдкрдиреЗ рд╢реНрд░реЛрддрд╛рдУрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдореБрдЭреЗ рдпрд╣ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реЛрдирд╛ рдкрдбрд╝рд╛ рдХрд┐ .NET рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЖрдорддреМрд░ рдкрд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рд╡рд┐рдзрд┐рдпреЛрдВ, рдбрд┐рдЬрд╛рдЗрди рдкреИрдЯрд░реНрди рдФрд░ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ, рдЖрджрд┐ рд╕реЗ рдХрдо рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВред рдЕрдХреНрд╕рд░ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдореМрдЬреВрдж .NET рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЗрди рдореВрд▓рднреВрдд рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рд╕реБрдирддреЗ рд╣реИрдВред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ редрдЗрд╕ рдкреБрд╕реНрддрдХ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдореИрдВрдиреЗ рдЕрдХреНрд╕рд░ рдпрд╣ рд╕рдВрджреЗрд╣ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЕрдкрдирд╛ рдирд╛рдо .NET рдХреЛ рд╕рдорд░реНрдкрд┐рдд рдкреБрд╕реНрддрдХ рдХреЗ рдХрд╡рд░ рдкрд░ рд░рдЦрд╛ рдЬрд╛рдПред рдореИрдВрдиреЗ рдЦреБрдж рд╕реЗ рдкреВрдЫрд╛ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ .NET рд╕реЗ рд╕рдВрдмрджреНрдз рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕ рдордВрдЪ рд╕реЗ рдЬреБрдбрд╝реЗ рд╕рднреА рдирдХрд╛рд░рд╛рддреНрдордХ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рдеред рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдХреНрдпрд╛ рдлрд╛рдпрджрд╛? рдореИрдВ рдПрдХ .NET рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╣реВрдВред рдирд╣реАрдВ! рдореИрдВ рдПрдХ рд▓рдЪреАрд▓рд╛ .NET рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╣реВрдВред рдФрд░ рдЗрд╕ рдкрд░ рдЧрд░реНрд╡ рд╣реИред тАЭрдареАрдХ рд╣реИ, рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдХреНрдпрд╛ рдХрд╣рддреЗ рд╣реИрдВред рдЕрдирдкрдврд╝ .NET рдЧрд╛рд▓, рдорд╛рд░реНрдЯрд┐рди рд╕рд╛рдерд┐рдпреЛрдВ рд╕реЗ рд╕реАрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, SOLID рдХреЗ рд╕рднреА рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдореБрдЭреЗ рдмрд╣реБрдд рдЕрд╕реНрдкрд╖реНрдЯ рд▓рдЧрд╛ред рдПрдХ рддрд░рдл, рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ (рдЬреИрд╕реЗ рдбреАрдЖрдИрдкреА рдФрд░ рдУрд╕реАрдкреА) рдмрд╣реБрдд рд╣реА рдХрдареЛрд░ рд╢рдмреНрдж рд╣реИрдВ: рдбреАрдЖрдИрдкреА рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЪрд░ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рд▓рдЧрд╛рддрд╛ рд╣реИ, рдФрд░ рдУрд╕реАрдкреА рдХрд╛ рдкреБрдирд░реНрдореВрд▓реНрдпрд╛рдВрдХрди рдХреЗ рдмрд┐рдирд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд╛ рдорддрд▓рдм рд╣реИред рджреВрд╕рд░реА рдУрд░, рдХрднреА-рдХрднреА рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдиреЛрдЯреНрд╕ рдлрд┐рд╕рд▓ рдЬрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЛ рдЗрди рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рдмреБрджреНрдзрд┐рдорд╛рдиреА рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдпрд╣рд╛рдБ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рд╣реИ:
тАЬрд▓рдЪреАрд▓реА рдЯреАрдореЗрдВ рдЗрди рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ (рдЕрд░реНрде SOLID) рдХреЛ рдХреЗрд╡рд▓ рджреБрд░реНрдЧрдВрдз рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд░рддреА рд╣реИрдВ; рдЬрдм рдпрд╣ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрдмреВ рдЖ рд░рд╣реА рд╣реИ, рддреЛ рд╕рд┐рджреНрдзрд╛рдВрдд рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдХрд┐рд╕реА рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдмрд┐рдирд╛ рд╢рд░реНрдд рдХреЗ рдкрд╛рд▓рди рдХрд░рдирд╛ рдПрдХ рдЧрд▓рддреА рд╣реЛрдЧреА рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рд╕рд┐рджреНрдзрд╛рдВрдд рд╣реИред рд╕рд┐рджреНрдзрд╛рдВрдд рдЦрд░рд╛рдм рдЧрдВрдз рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВред рдпреЗ рдЗрддреНрд░ рдирд╣реАрдВ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдкреВрд░реЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдмрд╣реБрддрд╛рдпрдд рд╕реЗ рдкрд╛рдиреА рдкрд┐рд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рдЕрддреНрдпрдзрд┐рдХ рдкрд╛рд▓рди рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЬрдЯрд┐рд▓рддрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред "рдПрдХ рддрд░рдл, рдпрд╣ рдмрд╣реБрдд рд╣реА рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИ, рд▓реЗрдХрд┐рди рджреВрд╕рд░реА рддрд░рдл, рдЖрдкрдХреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдЦреНрдд рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рдпрдореЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХрдм рдФрд░ рдХреНрдпрд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдХрд╛рд░рдг рдФрд░ рдкрд░рд┐рдгрд╛рдо рднреНрд░рдорд┐рдд рд╣реИрдВ: рдбрд┐рдЬрд╛рдЗрди рдореЗрдВ "рдбрд╛рд░реНрд▓рд┐рдВрдЧ" рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рд╡реЗ рдЙрдиреНрд╣реЗрдВ рдЦрддреНрдо рдХрд░рдиреЗ рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдорджрдж рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
рдиреАрдЪреЗ рдЙрди рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рдирдХрд╛ рдХреЗрд╡рд▓ рдЙрд▓реНрд▓рдВрдШрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
LSP
"рдЕрдЧрд░ рд╣рдо рдПрдХ рд╡реНрдпреБрддреНрдкрдиреНрди рд╡рд░реНрдЧ рдмрдирд╛рддреЗ рд╕рдордп рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рд╕рдВрднрд╡рддрдГ рдбрд┐рдЬрд╝рд╛рдЗрди рдореЗрдВ рдХреЛрдИ рджреЛрд╖ рд╣реИред"рдпрд╛ рдлрд┐рд░ рдПрдХ рдФрд░ рд╡рд┐рдХрд▓реНрдк рд╣реИ: рд╣рдо рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдореЗрдВ рд░рд╣рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рдХрд╛рд╕рд╡рд╛рджреА рдбрд┐рдЬрд╛рдЗрди рдПрдХ рдкреНрд░рдореБрдЦ рд╡рд┐рдХрд╛рд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИред
тАЬрдХреНрдпрд╛ рдПрд▓рдПрд╕рдкреА рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкрд╛рддрд╛ рд╣реИ? рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬреЛ рдореИрдВрдиреЗ рдХрдИ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдерд╛ ред ... 1990 рдХреЗ рджрд╢рдХ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ ... "рдореВрд▓ рдкреБрд╕реНрддрдХ 2006 рдХреЗ рдордзреНрдп рдореЗрдВ рдЬрд╛рд░реА рдХреА рдЧрдИ рдереА (рд╕реА # 2.0 рдФрд░ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рдХреЗ рдмрд╛рдж), рдФрд░ рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ - рдпрд╣ 1990 рдХреЗ рджрд╢рдХ рдХреА рд╢реБрд░реБрдЖрдд рд╣реИред
"LCP рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╕рд┐рджреНрдзрд╛рдВрдд OCP рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред"рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ OCP рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдмрд╣реБрд░реВрдкрддрд╛ рд╣реИ, рдФрд░ LSP рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдмрд╣реБрд░реВрдкрддрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╣рдо рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВред рдУрд╕реАрдкреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ред
рдпрджрд┐ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрд▓рдПрд╕рдкреА рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рдФрдкрдЪрд╛рд░рд┐рдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдЕрдиреБрдмрдВрдзреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рд╕рд╣реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдЙрдирдХреА рднреВрдорд┐рдХрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрдиреБрдмрдВрдзреЛрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдкреБрд╕реНрддрдХ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ рдкрд╛рд░рд┐рдд рд╣реЛрдиреЗ рдореЗрдВред
DIP
рдЗрд╕ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рдПрдХ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЖрд▓реЛрдЪрдирд╛ рд▓реЗрдЦ
"рдирд┐рд░реНрднрд░рддрд╛ рдЙрд▓рдЯрд╛ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирдЬрд╝рд░" рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИред
рд▓реЗрдХрд┐рди рдпрд╣рд╛рдБ рдПрдХ рдмрд╣реБрдд рд╣реА рднрд╛рд╡рдирд╛рддреНрдордХ рдирд┐рд╖реНрдХрд░реНрд╖ рд╣реИ рдЬреЛ рдмрд╣реБрдд рдкреНрд░рд╕рдиреНрди рдерд╛:
тАЬрд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдРрд╕рд╛ рдЙрд▓рдЯрд╛ рд╡рд╕реНрддреБ рдЙрдиреНрдореБрдЦ рдбрд┐рдЬрд╛рдЗрди рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рд╕рдВрдХреЗрдд рд╣реИред рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд┐рд╕ рднрд╛рд╖рд╛ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдЙрд▓рдЯреА рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдбрд┐рдЬрд╝рд╛рдЗрди рд╣реИред рдЕрдиреНрдпрдерд╛, рдбрд┐рдЬрд╛рдЗрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рд╣реИред "рдмрд╣реБрдд рд╡рд┐рд╡рд╛рджрд┐рдд рдмрдпрд╛рди, рд╕рд╣рдордд!
рдУрд╕реАрдкреА
рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдУрдкрди-рдХреНрд▓реЛрдЬреНрдб рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рд▓реЗрдЦрдХ рдмреЙрдм рдорд╛рд░реНрдЯрд┐рди рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд░реНрдЯреНрд░реЗрдВрдб рдореЗрдпрд░ рдЕрдкрдиреА рдкреБрд╕реНрддрдХ "
рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдбрд┐рдЬрд╝рд╛рдЗрди рдСрдлрд╝ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╕рд┐рд╕реНрдЯрдореНрд╕" рдореЗрдВ рд╣реИрдВ ред рдЙрд╕реА рд╕рдордп, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХрдо рд▓реЛрдЧреЛрдВ рдиреЗ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдХрд┐ рдмреЙрдм рдорд╛рд░реНрдЯрд┐рди рдЗрд╕ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рдЕрдкрдиреЗ рддрд░реАрдХреЗ рд╕реЗ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВред
рдмреЙрдм рдорд╛рд░реНрдЯрд┐рди рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд╛ :
рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЗрдХрд╛рдЗрдпрд╛рдВ (рдХрдХреНрд╖рд╛рдПрдВ, рдореЙрдбреНрдпреВрд▓, рдлрд╝рдВрдХреНрд╢рди, рдЖрджрд┐) рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдЦреБрд▓реА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рд╕рдВрд╢реЛрдзрди рдХреЗ рд▓рд┐рдП рдмрдВрджредрдЗрд╕ рдкреНрд░рдХрд╛рд░, рдореЙрдбреНрдпреВрд▓ рдХреА рджреЛ рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ:
- рд╡реЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдЦреБрд▓реЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИрдВ, рддреЛ рд╣рдо рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдПрдХ рдирдпрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдЬреЛ рдмрджрд▓рддреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рд╣рдо рдореЙрдбреНрдпреВрд▓ рдлрд╝рдВрдХреНрд╢рди рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред
- рд╡реЗ рд╕рдВрд╢реЛрдзрди рдХреЗ рд▓рд┐рдП рдмрдВрдж рд╣реИрдВред рдореЙрдбреНрдпреВрд▓ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕реНрд░реЛрдд рдпрд╛ рдмрд╛рдЗрдирд░реА рдХреЛрдб рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рдЬреБрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИред рдореЙрдбреНрдпреВрд▓ рдХрд╛ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡, рдЪрд╛рд╣реЗ рд╡рд╣ рдПрдХ рдпреЛрдЧреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реЛ, DLL рдпрд╛ EXE рдлрд╝рд╛рдЗрд▓, рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣рддрд╛ рд╣реИред
рдмрд░реНрдЯреНрд░реЗрдВрдб рдореЗрдпрд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд╛ :
рдореЙрдбреНрдпреВрд▓ рдЦреБрд▓реЗ рдФрд░ рдмрдВрдж рджреЛрдиреЛрдВ рд╣реЛрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПредрдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛,
рдЦреБрд▓реЗрдкрди рдФрд░ рдирд┐рдХрдЯрддрд╛ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░
рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
- рдпрджрд┐ рдЗрд╕реЗ рдЕрднреА рднреА рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИ рддреЛ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЦреБрд▓рд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕рдореЗрдВ рдХрдИ рдСрдкрд░реЗрд╢рдиреЛрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рдпрд╛ рдЗрд╕рдХреА рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдореЗрдВ рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рд╣реИред
- рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдирд┐рдЬреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐ рдпрд╣ рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдореЙрдбреНрдпреВрд▓ (рдЗрд╕рдХрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕, рд╕реВрдЪрдирд╛ рдЫрд┐рдкрд╛рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ) рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╕рдЦреНрддреА рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЕрдВрддрд┐рдо рд╡рд┐рд╡рд░рдг рд╣реИред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реНрддрд░ рдкрд░, рдореЙрдбреНрдпреВрд▓ рдХреА рдмрдВрдж рд╕реНрдерд┐рддрд┐ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ (рдЗрд╕рдХреЗ рдХреНрд▓рд╛рдЗрдВрдЯ) рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдореЗрдпрд░ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЦреБрд▓реЗ / рдмрдВрдж рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдорд╛рд░реНрдЯрд┐рди, рдЗрд╕рдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рд╣рд┐рдд рдкреВрд░реЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЦреЛрд▓рдиреЗ / рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддрд╛ рд╣реИредрдкреБрдирд░реНрд╕рдВрдпреЛрдЬрди рдХреЗ рдмрд┐рдирд╛ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрд╕реА рд╕рдордп, рдпрд╣ рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рд╣реИ рдХрд┐ рдУрдкрди-рдХреНрд▓реЛрдЬреНрдб рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ,
рдбреНрд░рд╛ рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде
рдЖрдХрд╛рд░ рд╡рд░реНрдЧ рдЕрднреА рднреА рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдбрд┐рдЬрд╛рдЗрди рд╕реЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдореЗрдВ рдУрдкрди-рдХреНрд▓реЛрдЬреНрдб рд╕рд┐рджреНрдзрд╛рдВрдд рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА, рд╡рд╣ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЪреБрдк рд╣реИ рдХрд┐ рдЕрдЧрд░ рдпрд╣ рд╕рдорд╛рдзрд╛рди рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдЦреБрд▓рд╛ рд░рд╣реЗрдЧрд╛ рдФрд░ рд╕рдВрд╢реЛрдзрди рдХреЗ рд▓рд┐рдП рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдЕрдЧрд░ рд╣рдо рдПрдХ рдирдП рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдВрдХрдбрд╝реЗ рдпрд╛ рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдСрдкрд░реЗрд╢рди рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдЖрдИрдПрд╕рдкреА
рдкреБрд╕реНрддрдХ рдХреЛ рдкрдврд╝рддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рдмрд╛рд░-рдмрд╛рд░ рдЦреБрдж рдХреЛ рдпрд╣ рд╕реЛрдЪрддреЗ рд╣реБрдП рдкрд╛рдпрд╛ рдХрд┐ рдкреБрд╕реНрддрдХ рдЦрд░реЛрдВрдЪ рд╕реЗ рдирд╣реАрдВ рд▓рд┐рдЦреА рдЧрдИ рд╣реИ, рдмрд▓реНрдХрд┐ рджреВрд╕рд░рд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЙрджрд╛рд╣рд░рдг C # рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреБрд╕реНрддрдХ рдХреЛ "рдорд╛рдереЗ рдкрд░" рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ .NET рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рдореБрд╣рд╛рд╡рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреА рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЕрд▓рдЧрд╛рд╡ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рд╣реИрдВред
рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдкреГрдердХреНрдХрд░рдг рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рджреЛ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдПрдХ
рдбреЛрд░ (рдбреЛрд░) рдХреА рдХрдХреНрд╖рд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рдгрд╛рд▓реА рдФрд░
рдЯрд╛рдЗрдордбреИрдо рдХрд╛ рдПрдХ рдЙрдкрд╡рд░реНрдЧ рд╣реИ, рдЬрд┐рд╕реЗ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рджрд░рд╡рд╛рдЬрд╛ рдмрдВрдж рди рд╣реЛрдиреЗ рдкрд░ рд╢реНрд░рд╡реНрдп рд╕рдВрдХреЗрдд рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, "рдкреНрд░рддрд┐рдирд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдкреГрдердХреНрдХрд░рдг" рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рд▓реЗрдЦрдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЖрдИрдПрд╕рдкреА рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░реЗрдЧрд╛:

рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦрдХ рдиреЗ рдХреНрдпрд╛ рд▓рд┐рдЦрд╛ рд╣реИ:
"рдпрд╣ рд╕рдорд╛рдзрд╛рди рдЖрдИрдПрд╕рдкреА рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИ рдФрд░ рдбреЛрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рдЯрд╛рдЗрдорд░ рд╡рд░реНрдЧ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИред ... рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдмрд╣реБрдд рд╕реБрдВрджрд░ рдирд╣реАрдВ рд╣реИред рд╣рд░ рдмрд╛рд░ рдЬрдм рд╣рдо рдЯрд╛рдЗрдордЖрдЙрдЯ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╣рдореЗрдВ рдПрдХ рдирдИ рд╡рд╕реНрддреБ рдмрдирд╛рдиреА рд╣реЛрдЧреАред тАЭрдЗрд╕ рдЦрдВрдб рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдХрд▓реНрдкрдирд╛ рдХреА рдХрд┐ рдЫреЛрдЯреЗ рдорд╛рд░реНрдЯрд┐рди (рдЬреЛ .NET рдХрд╛ рдмреЗрдЯрд╛ рд╣реИ) рдХреЛ рдЗрд╕реЗ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж рдХреНрдпрд╛ рдХрд╣рдирд╛ рд╣реИ:
"рдкрд╛, рд╕реБрдиреЛ, рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдбрд┐рдЬрд╝рд╛рдЗрди рд╡рд┐рдХрд▓реНрдк рдирд╡реАрдирддрдо рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЖрдк рдФрд░ рдореИрдВ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рдПрдХ рдХрд┐рддрд╛рдм рдирд╣реАрдВ рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА ...
рд╡рд╣рд╛рдБ, рд╕рдм рдХреЗ рдмрд╛рдж, рджреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдХреНрд╖рд╛рдПрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди
рдЯрд╛рдЗрдордбреИрдо рдХреНрд▓рд╛рд╕ рдореЗрдВ
рдбреЛрд░рдореАрдЯрд╛рдЙрдЯ рдкрджреНрдзрддрд┐ рдХреЗ рд▓рд┐рдП, рдЬреЛ
рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ
, рд╣рдорд╛рд░реЗ
рд▓рд┐рдП рдЪрд╛рд▓реЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ
рдлрд╛рдбрд╝ рджреА рдЬрд╛рдПрдВрдЧреА! рдЖрдЦрд┐рд░рдХрд╛рд░, рдмрд╣реБрдд рд╢реБрд░реБрдЖрдд рд╕реЗ .NET рдореЗрдВ рдЯрд╛рдЗрдорд░ рд╣реИ рдФрд░ рдЙрдирдореЗрдВ "рдСрдмреНрдЬрд░реНрд╡рд░" рдШрдЯрдирд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рди рдХрд┐ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ред рддреЛ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╣рдо
рдЯрд╛рдЗрдорд░ рдХреНрд▓рд░реНрдХ рдФрд░
рдбреЛрд░рдорд┐рдЯреЗрд░ рдПрдбреЗрдкреНрдЯрд░ рдХреЛ рдлреЗрдВрдХ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░
рдбреЛрд░рдЯрд╛рдЗрдо рдЖрдЙрдЯ рд╡рд┐рдзрд┐ рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдФрд░ рдЗрд╕ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЛ рдмрд╛рд╣рд░ рднреА рдлреЗрдВрдХ рд╕рдХрддреЗ рд╣реИрдВ)ред
рддреЛ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдХреЛрдб рдХреНрд▓реАрдирд░ рд╣реЛрдЧрд╛, рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рднреАред рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЕрдзреНрдпрд╛рдп рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реА # рдореБрд╣рд╛рд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ рд╕рдореБрджрд╛рдп рдЖрдкрдХреА рд░рдЪрдирд╛рддреНрдордХрддрд╛ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ! "
рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдРрд╕реА рдХреЛрдИ рдмрд╛рддрдЪреАрдд рдирд╣реАрдВ рдереА! рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдЕрдзреНрдпрд╛рдп рдмрд╣реБрдд рдЦрд░рд╛рдм рдЙрджрд╛рд╣рд░рдг рджреЗрддрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕реА # рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдирд╣реАрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдпреВрдПрдордПрд▓
"рд╕реНрдЯреЗрдЯрд┐рдХ рдЖрд░реЗрдЦ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рддрд╛рд░реНрдХрд┐рдХ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН рддрддреНрд╡ - рд╡рд░реНрдЧ, рд╡рд╕реНрддреБрдПрдВ , рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ - рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдзред"рдСрдмреНрдЬреЗрдХреНрдЯ "рдХрд┐рд╕реА рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреА рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рддрд╛рд░реНрдХрд┐рдХ рд╕рдВрд░рдЪрдирд╛" рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИрдВред
"рдПрдХ рд╕рдВрдШ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕рдВрдмрдВрдз рд╣реИ, рдЗрд╕ рддрдереНрдп рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ рдХрд┐ рдПрдХ рд╡рд╕реНрддреБ рджреВрд╕рд░реЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рд░рдЦрддреА рд╣реИ рдФрд░ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд╕реНрддреБ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдмреБрд▓рд╛рддреА рд╣реИред"рдПрд╕реЛрд╕рд┐рдПрд╢рди рд▓рд┐рдВрдХ рдХреЗ рд╕рдВрд░рдХреНрд╖рдг рдХрд╛ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдХреНрд▓рд╛рд╕
рдП рд╕реАрдзреЗ
рд╕рд┐рдВрдЧрд▓рдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдХреЛрдИ рд▓рд┐рдВрдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╕рдВрдШ рд╣реИред
тАЬрд░рдЪрдирд╛ рдПрдХрддреНрд░реАрдХрд░рдг рдХрд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓рд╛ рд╣реИред рдлрд┐рд░, рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдШ рд╕реЗ рдЕрдкреНрд░рднреЗрджреНрдп рд╣реИред рдЗрд╕ рдмрд╛рд░, рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рд╕рдВрдмрдВрдз рдХрд╛ C # рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рдХреБрдЫ рдЙрдкрдпреЛрдЧ рд╣реИ ред "рдпрд╣рд╛рдБ рдпрд╣ рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдирд┐рдпрдВрддреНрд░рд┐рдд рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╢реБрджреНрдз рд░рдЪрдирд╛, рдЬрдм рдкреВрд░реА рд╕рдЦреНрддреА рд╕реЗ рдШрдЯрдХ рдХреЗ рдЬреАрд╡рди рдХрд╛рд▓ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреА рд╣реИ, рддреЛ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдо рддрд╛рд░реНрдХрд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдбреЗрд╡рд▓рдкрд░ # рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ C # рдореЗрдВ рд░рдЪрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдХреНрд╕рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкреИрдЯрд░реНрди
рдпрд╣ рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХрд┐ рдкреБрд╕реНрддрдХ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдФрд░ рдкреИрдЯрд░реНрди рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИ, рдЬрдмрдХрд┐ рдХреБрдЫ рдХрд╛ рд╡рд░реНрдгрди рд╢рд╛рдпрдж рд╣реА рдХрднреА рджреВрд╕рд░реЛрдВ рдХреЗ рд╡рд┐рд╡рд░рдг рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рддреЛ, рдбреАрдЖрдИрдкреА рдкреИрдЯрд░реНрди рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрдИ рд╕рдорд╕реНрдпрд╛рдПрдВ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ, рд░рдгрдиреАрддрд┐ рдФрд░ рдордзреНрдпрд╕реНрде рджреНрд╡рд╛рд░рд╛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╣рд▓ рдХреА рдЬрд╛рддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╕рдордп рдкреИрдЯрд░реНрди рдХрд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╛ рдЬрдм
рд╕рд┐рдВрдЧрд▓рдЯрди рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ
рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХрд┐рд╕реА рдХреЛ рдпрд╣ рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЙрд╕рдХреЗ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреАрдЖрдИрдкреА рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░реЗрдВрдЧреЗ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди, рдлрд┐рд░ рд╕реЗ, рдпреЗ рд╕рдорд╛рдирддрд╛рдПрдВ рдирд╣реАрдВ рдЦреАрдВрдЪреА рдЧрдИ рд╣реИрдВред
рдЕрдм рдереЛрдбрд╝реА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ред
рдореБрдЦреМрдЯрд╛ рдФрд░ рдордзреНрдпрд╕реНрде
тАЬрдЗрд╕ рдЕрдзреНрдпрд╛рдп рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд┐рдП рдЧрдП рджреЛрдиреЛрдВ рдкреИрдЯрд░реНрди рдХрд╛ рдПрдХ рд▓рдХреНрд╖реНрдп рд╣реИ: рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рдореВрд╣ рдкрд░ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдиреАрддрд┐ рд▓рд╛рдЧреВ рдХрд░рдирд╛ред рдлрд╝рд╛рдХрдбреЗ рдКрдкрд░ рд╕реЗ рдПрдХ рдиреАрддрд┐ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдордзреНрдпрд╕реНрде - рдиреАрдЪреЗ рд╕реЗред рдЕрдЧреНрд░рднрд╛рдЧ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ рдФрд░ рдкреНрд░рддрд┐рдмрдВрдз рд▓рдЧрд╛рддрд╛ рд╣реИред рдордзреНрдпрд╕реНрде рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рднреА рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред "80 рд▓реЗрд╡рд▓ рдкрд░ рдЯреНрд░реЛрд▓! рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдХрд┐рд╕реА рднреА рджреЛ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЖрдзрд╛рд░ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рд╡реЗ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рдорддрднреЗрджреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдПрдХ рд╕реНрдерд╛рди рдкрд░ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ!
рдЗрди рдкреИрдЯрд░реНрдиреЛрдВ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ, рд╡рд┐рднрд┐рдиреНрди рд╢реНрд░реЗрдгрд┐рдпреЛрдВ (рдореБрдЦрд░ - рд╕рдВрд░рдЪрдирд╛рддреНрдордХ, рдордзреНрдпрд╕реНрде - рд╡реНрдпрд╡рд╣рд╛рд░) рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ рдФрд░ рдЕрдореВрд░реНрдд рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрд░реЛрдВ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╣реИрдВред рдкреБрд╕реНрддрдХ рдХрд╛ рдЕрдзреНрдпрд╛рдп рдХрдХреНрд╖рд╛рдУрдВ рдФрд░ рдореЙрдбреНрдпреВрд▓реЛрдВ рдХреЗ рд╕рдорд╛рди рд╕реБрд╕рдВрдЧрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рд╡рд┐рд╖рдо рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рд╕рдВрджрд┐рдЧреНрдз рд▓рдЧрддрд╛ рд╣реИред
рдбреЗрдХреЛрд░реЗрдЯрд░
тАЬрдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдХреЛрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВред рдЖрдк рдЗрд╕реЗ рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдПрдХ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рд╡рд╕реНрддреБ рдХреЛ рд╕рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдЖрдк рдПрдХ рдбреЗрдЯрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕рдЬрд╛рдиреЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЦреБрдж рдХреЛ рдХреИрд╕реЗ рд▓рд┐рдЦрдирд╛ рдФрд░ рд▓рд┐рдЦрдирд╛ рд╣реИ, рдЗрд╕реЗ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдирд┐рдпрдореЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХрд░рдирд╛ред рдмрд╛рдж рдХрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЕрдХреНрд╕рд░ рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред "рдбрдмреНрд▓реНрдпреВрдЯреАрдПрдл ?! рдбреЗрдХреЛрд░реЗрдЯрд░ рдХрд╛ рдореБрдЦреНрдп рд╕рд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рд╕рдЬрд╛рдП рдЧрдП рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдмрд┐рдирд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рд╣рдо "рдЗрд╕реЗ рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рднрд░рддреЗ рд╣реИрдВ" рдФрд░ рдПрдХ рднреА рдЖрднрд╛рд╕реА рд╡рд┐рдзрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкрд░рд┐рдгрд╛рдореА рд╡рд░реНрдЧ рдПрдХ рдкрд░реНрдпрд╛рдкреНрдд рд╕рдЬреНрдЬрд╛рдХрд╛рд░ рдирд╣реАрдВ рд╣реЛрдЧрд╛!
рд╣рд╛рдВ, рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ, рдбреЗрдХреЛрд░реЗрдЯрд░ рдЖрдкрдХреЛ рд╕рдВрдЪрд╛рд▓рди рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдЕрднреА рднреА рдореМрдЬреВрджрд╛ рд╡рд░реНрдЧ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рдирдП рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдирд╣реАрдВ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдПред рдлрд┐рд░ рднреА, рдбреЗрдХреЛрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ "рдкрд╛рд░рджрд░реНрд╢реА рд░реВрдк рд╕реЗ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдЧреНрд░рд╛рд╣рдХ рдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░рд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ" рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЖрдЧрдВрддреБрдХ
"рдпрд╣ рдирд┐рд░реНрднрд░рддрд╛ рдЪрдХреНрд░ рд▓рд┐рдВрдХ рд╕рднреА рдЙрдкрд╡рд░реНрдЧреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ - рд╕рднреА рдореЙрдбреЗрдо рдкреНрд░рдХрд╛рд░ - рдПрдХ рд╕рд╛рде, рдпрд╣ рдЖрдЧрдВрддреБрдХреЛрдВ рдХреЛ рдЖрдХрд╕реНрдорд┐рдХ рд░реВрдк рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдпрд╛ рд╡рд┐рдЬрд╝рд┐рдЯ рдХрд┐рдП рдЧрдП рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рдирдП рдЙрдкрд╡рд░реНрдЧреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдмрдирд╛рддрд╛ рд╣реИред"рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЪрдпрдирд┐рдд рдЯреБрдХрдбрд╝рд╛ рдХреЗрд╡рд▓ C ++ рд╕реЗ C # рдореЗрдВ рд╕рдВрдХреНрд░рдордг рдХреЗ рдмрд╛рдж рдЕрджреНрдпрддрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
"рдЗрд╕рд╕реЗ рднреА рдмрджрддрд░, рдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдХреА рдЧрддрд┐ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреА рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдЧрд╣рд░рд╛рдИ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред"рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдХрдИ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░ рд╡рд╛рд▓реЗ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП, рдмрдбрд╝реА рдкрджрд╛рдиреБрдХреНрд░рдо рдЬрд╛рддрд┐рдпреЛрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ .NET рдХреЗ рд▓рд┐рдП рдЗрди рд╢рдмреНрджреЛрдВ рдХрд╛ рдкреНрд░рдорд╛рдг рдирд╣реАрдВ рдорд┐рд▓рд╛ред
рд░рд╛рдЬреНрдп
рдЕрдзреНрдпрд╛рдп 36 рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╡реЗрдХреНрдЯрд░ (рдкреНрд░рдХрд╛рд░
IList рдХреЗ рдХреНрд╖реЗрддреНрд░ ) рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдИ рдЧрдИ рд░реВрдкрд╛рдВрддрд░рдг рддрд╛рд▓рд┐рдХрд╛ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реИ:
тАЬрдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдиреБрдХрд╕рд╛рди рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдХрдо рдЙрддреНрдкрд╛рджрдХрддрд╛ рд╣реИред рд░реВрдкрд╛рдВрддрд░рдг рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЦреЛрдЬ рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рдпрджрд┐ рд░рд╛рдЬреНрдп рдорд╢реАрди рдмрд╣реБрдд рдмрдбрд╝реА рд╣реИ, рддреЛ рдЦреЛрдЬ рд╕рдордп рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИред тАЭрдореИрдВрдиреЗ рд╣рдореЗрд╢рд╛ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рд╕рдВрдХреНрд░рдордг рддрд╛рд▓рд┐рдХрд╛ рдкрд░ рдЖрдзрд╛рд░рд┐рдд
рд░рд╛рдЬреНрдп рдкреИрдЯрд░реНрди рд╡рд┐рдХрд╛рд╕ рд▓рд╛рдЧрдд / рджрдХреНрд╖рддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рдмрд╕реЗ рд╕рдлрд▓ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рд▓реЗрдХрд┐рди, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬреЛ O (1) рд╕рдВрдХреНрд░рдордг рдЦреЛрдЬ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ред
рдЦрд╛рдХрд╛ рд╡рд┐рдзрд┐ рдФрд░ рд░рдгрдиреАрддрд┐
тАЬрдкреИрдЯрд░реНрди рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╡рд┐рдзрд┐ рдЕрднреНрдпрд╛рд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд▓рдЪреАрд▓рд╛ рдирд╣реАрдВ рд╣реИред рд░рдгрдиреАрддрд┐ рдкреИрдЯрд░реНрди рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд▓рдЪреАрд▓рд╛рдкрди рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдХреНрд╖рд╛ рд╢реБрд░реВ рдХрд░рдиреА рд╣реЛрдЧреА, рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдЗрди рдкреИрдЯрд░реНрдиреЛрдВ рдХреЗ рдмреАрдЪ рдХрд╛ рдЪреБрдирд╛рд╡ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд░рдгрдиреАрддрд┐ рдХреЗ рд▓рдЪреАрд▓реЗрдкрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрд╛ рдЖрдк рдЯреЗрдореНрдкрд▓реЗрдЯ рдкрджреНрдзрддрд┐ рдХреА рд╕рд╛рджрдЧреА рдХрд╛ рдЖрдирдВрдж рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред "рдкреИрдЯрд░реНрди рдХреЗ рд▓рдЪреАрд▓реЗрдкрди рдХрд╛ рдЕрднрд╛рд╡ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╡рд┐рдзрд┐ рдЗрд╕рдХреА рдЦрд╛рдореА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рд╡рд╛рд░рд┐рд╕ рджреНрд╡рд╛рд░рд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕рд╢реАрд▓ рдХрдХреНрд╖рд╛рдПрдВ рдПрдХ рд╕рд░рд▓ рдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рдПрдХ рдврд╛рдВрдЪрд╛ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡рд╛рд░рд┐рд╕ рдХреЛ рдирд┐рдЪреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред
рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг
рдмреЙрдм рдорд╛рд░реНрдЯрд┐рди рдЯреАрдбреАрдбреА рдХреЗ рдПрдХ рдкреНрд░рд╕рд┐рджреНрдз рд╕рдорд░реНрдердХ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдиреБрдмрдВрдзреЛрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред рдирддреАрдЬрддрди, рдкреБрд╕реНрддрдХ рдХреЗ рдХреЛрдб рдореЗрдВ рдХрдИ рдмрдЧ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░реАрдХреНрд╖рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ "рд╕рдВрдЪрд╛рд▓рд┐рдд" рдерд╛, рдФрд░ рдкреВрд░реНрд╡ рд╢рд░реНрдд рдФрд░ рдкреЛрд╕реНрдЯрдХрдВрдбрд┐рд╢рди рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВред рдЖрдк рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ:
"рдЕрдиреБрдмрдВрдз, рд╕реНрдерд┐рддрд┐ рдФрд░ рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ" ред
рдорд╛рд░реНрдЯрд┐рди рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрдИ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг рдмрдирд╛рддрд╛ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ 2006 рдореЗрдВ рджреЛрдиреЛрдВ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╕реНрдкрд╖реНрдЯ рдЕрд▓рдЧрд╛рд╡ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдм рдЙрдирдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рд╕реНрдкрд╖реНрдЯ рд╣реИред
рдПрдХ рдЧрд┐рд░реА рд╣реБрдИ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рд╛ рдХрд╛ рдорддрд▓рдм рдХреЛрдб рдореЗрдВ рдХреАрдбрд╝реЗ рдпрд╛ рдХрдо рд╕реЗ рдХрдо рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗ рдмреЗрдореЗрд▓ рд╣реИред рдПрдХ рдЕрд╕рдлрд▓ рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд░реНрдпрд╛рд╡рд░рдгреАрдп рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рдмрд┐рд▓реНрдб рд╕реЗ рдиреАрдЪреЗ рдЧрд┐рд░рддреЗ рд╣реИрдВ рдФрд░ рд╣рд░ рдмрд┐рд▓реНрдб рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ, рдФрд░ рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди рдЯреЗрд╕реНрдЯ рдПрдХ рдЕрд▓рдЧ рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЕрдХреНрд╕рд░ рдирд╣реАрдВ рдЪрд▓рддреЗредрджреВрд╕рд░реЗ, рдорд╛рд░реНрдЯрд┐рди рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд▓рд┐рдЦреЗ рдЧрдП рдХрдИ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рд╣рд╡рд╛рд▓рд╛ рджреЗрддреЗ рд╣реИрдВ: рд╕рднреА рд╡рд░реНрдЧреЛрдВ рдХреЗ рдЖрд╡рдВрдЯрд┐рдд рдЗрдВрдЯрд░рдлреЗрд╕, рд▓рд┐рдЦрд┐рдд рдкрд░реАрдХреНрд╖рдг, HAPPINESSред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореБрдЭреЗ рдкрд░реЗрд╢рд╛рди рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдорд╣реАрдиреЛрдВ рддрдХ рдЗрд╕ рддрд░рд╣ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдЕрдЪреНрдЫреЗ рдХрд╡рд░реЗрдЬ рдХреЗ рд╕рд╛рде рдХреЛрдб рдорд┐рд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЦрд░рд╛рдм рдбрд┐рдЬрд╛рдЗрди рдХреЗ рд╕рд╛рдеред
рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ: "рдареАрдХ рд╣реИ, рдпрд╣ рдЕрднреА рднреА рдкреБрд╕реНрддрдХ рдХрд╛ рджреВрд╕рд░рд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рдФрд░ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдореВрд▓ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 2002 рдореЗрдВ рд╕рд╛рдордиреЗ рдЖрдпрд╛ рдерд╛, рддрдм рд╕рдм рдХреБрдЫ рдЕрд▓рдЧ рдерд╛!" рд▓реЗрдХрд┐рди рджреВрд╕рд░рд╛ рд╕рдВрд╕реНрдХрд░рдг 2006 рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рд▓реЗрдЦрдХреЛрдВ рдХреЗ рдкрд╛рд╕ рдкреНрд░рд╛рдкреНрдд рдЕрдиреБрднрд╡ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреБрд╕реНрддрдХ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдерд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рднреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИред рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреА рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рджреМрд░рд╛рди (рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдПрдХ рд╕рд╛рд▓ рдмрд╛рдж), рдЗрд╡рд╛рдВрд╕ рдиреЗ
"рдбреЛрдореЗрди-рдбреНрд░рд┐рд╡реЗрди рдбрд┐рдЬрд╝рд╛рдЗрди" рдкреБрд╕реНрддрдХ рдХрд╛ рд╡рд┐рдореЛрдЪрди рдХрд┐рдпрд╛, рдЬреЛ рдЬрдЯрд┐рд▓рддрд╛ рдФрд░ рдХрдИ рдЕрдиреНрдп рдореБрджреНрджреЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рд▓рдбрд╝рд╛рдИ рдкрд░, рдбрд┐рдЬрд╛рдЗрди рдкрд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдкрд░ рдЕрдзрд┐рдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╡рд┐рдЪрд╛рд░ рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдЗрд╡рд╛рдВрд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдпрддрд╛ рдХреЗ рд▓рд╛рднреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддрд░реНрдХ рдХреЛ рд╕рд░рд▓ рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рд╡реИрд▓реНрдпреВ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ), рдХрд┐ рдЖрдк рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рдПрдХ рдбрд┐рдЬрд╛рдЗрди рдХреЛ рдЪрд╛рд▓реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЬрдЯрд┐рд▓ рд╕рдордЧреНрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдРрд╕реЗ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдордзреНрдпрд╕реНрде рдмрди рдЬрд╛рдПрдВред
рдирддреАрдЬрддрди, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд┐рд╡рд╛рджреЛрдВ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдпрд╣ рдЬреНрдЮрд╛рдд рдерд╛ рдХрд┐ "рд╣рдо рдЗрдВрдЯрд░рдлреЗрд╕ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреЛ рдЕрд▓рдЧ рдХрд░рддреЗ рд╣реИрдВ" рдХреЗ рдмрдЬрд╛рдп, рдПрдХ рдФрд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдерд╛: рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдЕрд▓рдЧ-рдерд▓рдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдЬреЛ рдХрд┐рд╕реА рдкрд░ рднреА рдирд┐рд░реНрднрд░ рди рд╣реЛрдВ (рди рддреЛ рдЕрдиреНрдп рд╡рд░реНрдЧреЛрдВ рдкрд░, рди рд╣реА рдмрд╛рд╣рд░реА рд╡рд╛рддрд╛рд╡рд░рдг рдкрд░); рдлрд┐рд░ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рдПрдВ рдЬреЛ рд╕рд╛рдмрд┐рдд рдХрд┐рдП рдЧрдП рдирд┐рдЪрд▓реЗ-рд╕реНрддрд░ рдХреА рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВред рдирддреАрдЬрддрди, рд╣рдореЗрдВ рдПрдХ рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд рдкреНрд░рдгрд╛рд▓реА рдорд┐рд▓рддреА рд╣реИ, рдЬреЛ рдПрдХ рдареЛрд╕ рдиреАрдВрд╡ рдкрд░ рдирд┐рд░реНрдорд┐рдд рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд╕рд╛рде рд╣реА рдЙрдЬрд╛рдЧрд░ рд╣реЛрддреА рд╣реИ, рдЬрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд░рдирдЯрд╛рдЗрдо рдкрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдиреЛрдЯрдореИрдВрдиреЗ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рд▓рд┐рдЦрд╛
"рдЯреЗрд╕реНрдЯреЗрдб рдбрд┐рдЬрд╝рд╛рдЗрди рдмрдирд╛рдоред рдЕрдЪреНрдЫрд╛ рдбрд┐рдЬрд╛рдЗрди ред
тАЭрджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рдПрдХ рд╣реА рд╡рд┐рд╖рдп рдкрд░, рдЕрдиреБрдмрдВрдз рдмрдирд╛рдоред рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг, рдорд╛рд░реНрдЯрд┐рди рдФрд░ рдХреЛрдкреНрд▓рд┐рди рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд╛рд▓рд╛ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдЗрдиреНрдлреЛрдХреНрдпреВ рд╡реАрдбрд┐рдпреЛ рд╣реИ: рдХреЛрдкрд▓рд┐рдпрди
рдФрд░ рдорд╛рд░реНрдЯрд┐рди рдбрд┐рдмреЗрдЯ рдЯреАрдбреАрдбреА, рд╕реАрдбреАрдЖрд░
рдФрд░ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХрддрд╛рднрдпрд╛рдирдХ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ
рдЦреИрд░, рдкреБрд╕реНрддрдХ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рджреЗрддреА рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреАрдмреЛрд░реНрдб рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣рд╛рдБ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ:
[Test] public void LoadingEmployeeDataCommand() { operation = new LoadEmployeeOperation(123, null); SqlCommand command = operation.LoadEmployeeCommand; Assert.AreEqual("select * from Employee " + "where EmpId=@EmpId", command.CommandText); Assert.AreEqual(123, command.Parameters["@EmpId"].Value); }
рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдХреБрдЫ рднреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ: рдпрджрд┐ рдпрд╣ рдЧреБрдЬрд░рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдФрд░ рд╡рд░реНрдЧ рдХрд╛ рдХреЛрдб рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдирд╣реАрдВ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдСрдкрд░реЗрд╢рди рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдлрд┐рд░ рднреА, рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдП рдХреЛрдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдЕрдзрд┐рдХ рд╕рд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ рд╡реЗ рдХрд┐рд╕реА рдХрд╛рдо рдХреЗ рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред
рдиреЗрдЯ
рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдЬрдм рдХреЛрдИ рдкреБрд╕реНрддрдХ рдкрдврд╝рддрд╛ рд╣реИ, рддреЛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреБрд╕реНрддрдХ рдХрд╛ рджреВрд╕рд░рд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рдЬреЛ рдХрд┐ рд╕реА # рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИ, рдФрд░ рдирдИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЗ рдореБрд╣рд╛рд╡рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХрдИ рд╕реНрдерд╛рдиреЛрдВ рдкрд░, рдЬрд╛рд╡рд╛ рдирд╛рдордХрд░рдг рдореБрд╣рд╛рд╡рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╡рд┐рдзрд┐ рдирд╛рдо рдПрдХ рдЫреЛрдЯреЗ рдЕрдХреНрд╖рд░, CONSTANTS_WRITE_THE_ SOK рдХреЗ рд╕рд╛рде),
рдореБрдЦреНрдп рд╡рд┐рдзрд┐ рдХреЛ рдбреЛрдореЗрди рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдХрднреА-рдХрднреА рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рдмрдЬрд╛рдп рдПрдХ "рдкреИрдХреЗрдЬ" рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдорд╛рдирдХ .NET рдореБрд╣рд╛рд╡рд░реЛрдВ рдХреА рдХрдореА рд╣реЛрддреА рд╣реИ: рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХреЛрдВ рдХреЗ рд▓рд┐рдП, рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдВрд╢реЛрдзрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд░реНрдЧ
рдЖрдИрдбреАрд╕рд┐рд╕реЛрдкреНрд▓рд┐рдХ рдЖрджрд┐ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ; рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡реЗ рдкреБрд╕реНрддрдХ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╕реЗ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рджрд┐рдЦрд╛рдИ рджрд┐рдПред
рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЧрд▓рддрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЕрдЧрд▓реЗ рд╕рд╛рдЗрдбрдмрд╛рд░ рдореЗрдВ рджреА рдЧрдИ рд╣реИ, "рдореИрдВ рдХрд╣рд╛рдБ рдЧрдпрд╛ рдерд╛?"ред
"рдЖрдо рддреМрд░ рдкрд░ рдмреЛрд▓рддреЗ рд╣реБрдП, рдЖрдкрдХреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЕрд╡рдзрд╛рд░рдгрд╛ рдСрд░реНрдереЛрдЧреЛрдирд▓ рдореЗрдВ рдПрдХ рдирд╛рдо рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рдпрд╣ рдЕрд╡рдзрд╛рд░рдгрд╛ рдмрджрд▓ рд╕рдХрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╣рдо ICommand рдХреЛ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдПрдХ рд╕рд╛рд░ рд╡рд░реНрдЧ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдХреНрдпрд╛ рд╣рдо ICommand рдХреЗ рд╕рднреА рд╕рдВрджрд░реНрднреЛрдВ рдХреА рдЦреЛрдЬ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХрдорд╛рдВрдб рд╕реЗ рдмрджрд▓ рджреЗрдВрдЧреЗ? рдХреНрдпрд╛ рд╣рдо рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╕рднреА рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕рдВрдЧрдард┐рдд рдФрд░ рддреИрдирд╛рдд рдХрд░реЗрдВрдЧреЗ? "IMHO,
рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЪрд╛рд░реНрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рджреЗрд╢реА рдорда рдореЗрдВ рдЖрдирд╛ рдЖрд╕рд╛рди рд╣реИ ,
рдЕрдкрдиреЗ рдореБрд╣рд╛рд╡рд░реЛрдВ рдХреЗ рд╕рд╛рде рджреВрд╕рд░реА рднрд╛рд╖рд╛ рдореЗрдВ рдЖрдирд╛ ред рдпрджрд┐ рдореИрдВ рдЬрд╛рд╡рд╛ рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдЕрдкрдиреА рдкрд╕рдВрдж рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рд╕реНрдерд╛рдиреАрдп рдирд╛рдордХрд░рдг рдореБрд╣рд╛рд╡рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдпрд╣ рд╕рд╣реА рд╣реИ! рд▓реЗрдХрд┐рди рдЗрд╕ рд╕рд╛рдЗрдбрдмрд╛рд░ рдореЗрдВ рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рдореБрдЭреЗ рддрд░реНрдХ рдкрд╕рдВрдж рд╣реИред
рдЫреЛрдЯреЗ рдорд╛рд░реНрдЯрд┐рди рдиреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрдбрд╝реЗ рдХреЛ рдпрд╣ рдирд╣реАрдВ рдмрддрд╛рдпрд╛ рдХрд┐ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рдПрдХ рдЕрдореВрд░реНрдд рд╡рд░реНрдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИ рдЪрд╛рд╣реЗ рд╣рдо рдЗрдХрд╛рдИ рдХрд╛ рдирд╛рдо рдмрджрд▓реЗрдВ рдпрд╛ рдирд╣реАрдВ: рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдореЗрдВ рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╕рднреА рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдХреЛ "рдкреБрди: рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдФрд░ рддреИрдирд╛рдд" рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА! рдПрдХ рд╕рдорд╛рди рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рд╛рде рдордХреНрдЦреА рдкрд░ рдПрдХ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рдПрдЧрд╛!
PrimeGenerator
рдорд╛рд░реНрдЯрд┐рдиреНрд╕ рд░рд╛рдЬреНрдп рдХреЗ рдмрд╣реБрдд рд╢реМрдХреАрди рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЬрдм рдПрдХ рдкреНрд░рд╛рдЗрдо рдирдВрдмрд░ рдЬрдирд░реЗрдЯрд░ (рдкреАред 80) рдХреЛ рд░рд┐рдлреИрдХреНрдЯ рдХрд░рддреЗ рд╣реБрдП, рд╕реНрдерд┐рд░ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
тАЬрддреАрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЖрд╡рдВрдЯрди рдиреЗ рдореБрдЭреЗ рдХреБрдЫ рд╕реНрдерд╛рдиреАрдп рдЪрд░ рд╡рд░реНрдЧ рдХреЗ рд╕реНрдерд┐рд░ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ред рдирддреАрдЬрддрди, рдпрд╣ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдХреМрди рд╕реЗ рдЪрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдерд╛рдиреАрдп рд╣реИрдВ рдФрд░ рдЬрд┐рдирдХреА рд╡реНрдпрд╛рдкрдХ рдЧреБрдВрдЬрд╛рдЗрд╢ рд╣реИред "
class PrimeGenerator { private static bool[] crossedOut; private static int[] result; public static int[] GeneratePrimeNumbers(int maxValue) { return null; }
рдореБрдЭреЗ рдЦреЗрддреЛрдВ рдореЗрдВ рдордзреНрдпрд╡рд░реНрддреА рдкрд░рд┐рдгрд╛рдо рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рдкреНрдпрд╛рд░ рдХреА рд╕рдордЭ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдк рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдХреЛ рдЧреИрд░-рд╕реНрдерд╛рдиреАрдп рд▓реЛрдЧреЛрдВ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╡рд┐рдзрд┐ рддрд░реНрдХ рднреА рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рд╛рдЭрд╛ рд░рд╛рдЬреНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред
рд╕рд╛рдЭрд╛ рд╕реНрдерд┐рддрд┐ рдХреЛрдб рдХреЛ рдЬрдЯрд┐рд▓ рдмрдирд╛рддреА рд╣реИ (рдЕрдм рдХреЙрд▓ рдХрд╛ рдХреНрд░рдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ), рдФрд░ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдереНрд░реЗрдбреНрд╕ рд╕реЗ рдкреНрд░рд╛рдЗрдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдлреНрд░реЗрдорд╡рд░реНрдХ рдбрд┐рдЬрд╝рд╛рдЗрди рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢реЛрдВ рд╕реЗ рдЖрдо рддреМрд░ рдкрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЧрдП рдирд┐рдпрдо рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕реНрдерд┐рд░ рд╡рд░реНрдЧ рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рдХреЛ рдереНрд░реЗрдб рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд░рд╣рд╛ рд╣реВрдБ рдХрд┐ рдХреЛрдб рдЗрд╕ рдкреБрд╕реНрддрдХ рдХреЗ рд╡рд┐рдореЛрдЪрди рд╕реЗ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдирд┐рдХрд▓реЗ рд╣реБрдП рдкреБрдирд░рд╛рд╡реГрддреНрдд рдЦрдВрдбреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
SocketServer
рдпрд╣ рдХреЛрдб 251 рдкреЗрдЬ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИ рдФрд░ рдХрд┐рддрд╛рдм рдХреЗ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдирд╣реАрдВ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рдпрд╣рд╛рдВ рд░рдЦрд╛ рд╣реИ ред
public interface SocketService { void Serve(Socket s); } public class SocketServer { private TcpListener serverSocket = null; private Thread serverThread = null; private bool running = false; private SocketService itsService = null; private ArrayList threads = new ArrayList(); public SocketServer(int port, SocketService service) { itsService = service; IPAddress addr = IPAddress.Parse("127.0.0.1"); serverSocket = new TcpListener(addr, port); serverThread = new Thread(new ThreadStart(Server)); serverThread.Start(); } public void Close() { running = false; serverThread.Interrupt(); serverSocket.Stop(); serverThread.Join(); WaitForServiceThreads(); } private void Server() { serverSocket.Start(); running = true; while (running) { Socket s = serverSocket.AcceptSocket(); StartServiceThread(s); } }
рдХреЛрдб рдореЗрдВ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ: рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпреЗ рдЯреНрд░рд┐рдлрд╝рд▓реНрд╕ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рд░реАрдбреЛрдирд▓реА рдХреА рдХрдореА, рдПрдХ рдЖрдИрдбреАрд╕реЙрдлрд╝реНрдЯрд░реА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рдХрдореА, рдкреНрд░реЗрдХреНрд╖рдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдШрдЯрдирд╛рдУрдВ рдХреЗ рдмрдЬрд╛рдп рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ, рдкреНрд░рд╡рд╛рд╣ рдХреА рдореИрдиреНрдпреБрдЕрд▓ рд╣реЗрд░рдлреЗрд░ рдЬрдм рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕рдВрдЪрд╛рд▓рди .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдЕрдкрд╡рд╛рдж рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ред
рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рдпрд╣ рдХреЛрдб рдЦрд░рд╛рдм рдбрд┐рдЬрд╛рдЗрди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред рд╕реЙрдХреЗрдЯрд╕рд░реНрд╡рд░ , рд╕рд░реНрд╡рд┐рд╕рд░рдирд░ рдФрд░ рд╕реЙрдХреЗрдЯрд╕рд░реНрд╡рд░ рд╡рд░реНрдЧреЛрдВ рдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░рд┐рдпрд╛рдБ рдЕрд╕реНрдкрд╖реНрдЯ рдФрд░ рднреНрд░рд╛рдордХ рд╣реИрдВ ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╡рд░реНрдЧ рд╣реИ рдЬреЛ рд╕реЙрдХреЗрдЯреНрд╕ рд╕рд░реНрд╡рд┐рд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рд╕реЗрд╡рд╛ (рд╕реЙрдХреЗрдЯ рдПрд╕ ) рд╡рд┐рдзрд┐ рдореЗрдВ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рдХрд┐рд╕реА рддрд░рд╣ рд╡рд╣ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рджреВрд╕рд░реЗ рдзрд╛рдЧреЗ рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ? рдирд╣реАрдВред рд▓реЗрдХрд┐рди рд╡рд╣ рдХреИрд╕реЗ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдорд╛рддрд╛-рдкрд┐рддрд╛ рд╕реЙрдХреЗрдЯ рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЙрд╕реЗ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдмрд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рд▓реЗрдХрд┐рди рдпрд╣ рдХреИрд╕реЗ рд╕рдордЭреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕ рд╡рд┐рдзрд┐ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрд╡рд░реЛрдзрдХ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдпрд╛ рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЕрдирдВрдд рд▓реВрдк рдХреЛ рдореЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?
рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ, рддреЛ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдорд╛рд░реНрдЯрд┐рди рдбрд┐рдЬрд╛рдЗрди рднрдпрд╛рдирдХ рд╣реЛрдЧрд╛ред рдпрд╣ рдХреЛрдб .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреА рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдордЬреЗрджрд╛рд░ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ! рдХреНрд▓реЛрдЬрд╝ рд╡рд┐рдзрд┐ рдХреЛ рджреЗрдЦреЗрдВ, рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдХрд┐ рд╡рд╣рд╛рдВ рдЧрд▓рдд рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдереНрд░реЗрдб .Interrupt () рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╡рд░реНрддрдорд╛рди рд╕рд░реНрд╡рд░ рдереНрд░реЗрдб рдЕрдм рд╕рд░реНрд╡рд░ рд╕реЙрдХреЗрдЯ рдореЗрдВ рдирдП рдХрдиреЗрдХреНрд╢рди рдХреЗ рдЗрдВрддрдЬрд╛рд░ рдореЗрдВ рд▓рдЯрдХрд╛ рд╣реБрдЖ рд╣реИ редAcceptSocket () рд╡рд┐рдзрд┐ред рдПрдХ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рд╕рднреА рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЙрдХреЗрдЯ рдХреЗ рд╕рд╛рде рд╣реЛрдЧреА рдпрджрд┐ рд╡реЗ s .Receive () рдХреЛ рд╕рд░реНрд╡рд░ рд╡рд┐рдзрд┐ рдореЗрдВ рдХрд╣рддреЗ рд╣реИрдВ: рдпрд╣ рд╕рднреА рд╣реЙрд░реЛрд╢рдХрд╛ рдмрдВрдж рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЯреНрд░реА-рдореИрдк
рдкреВрд░реЗ рдХреЛрдб рдХреЛ рдпрд╣рд╛рдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред
internal class TreeMapNode { private static readonly int LESS = 0; private static readonly int GREATER = 1; private IComparable key; private object value; private TreeMapNode[] nodes = new TreeMapNode[2]; private int SelectSubNode(IComparable key) { return (key.CompareTo(this.key) < 0) ? LESS : GREATER; } }
рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рдШрд╛рддрдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрд╛рд╡рд╛-рд╢реИрд▓реА рдХреЗ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ, рдХреБрдВрдЬреА рдФрд░ рдиреЛрдбреНрд╕ рдлрд╝реАрд▓реНрдб рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рдиреА рд╕реЗ рдХреАрд╡рд░реНрдб рдХрд╛ рдЕрднрд╛рд╡, рд╕рд╛рде рд╣реА рдЕрд╕рдлрд▓ рдирд┐рд░рдВрддрд░ рдирд╛рдо: LESS рдФрд░ GREATER , рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЙрдк-рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рддреЗ рд╣реИрдВ, рд╣рдбрд╝рддрд╛рд▓реА рд╣реИрдВред
рдирд┐рд╖реНрдХрд░реНрд╖

рдореБрдЭреЗ рдПрдХ рдмрд╛рд░ рдкреВрдЫрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдореИрдВрдиреЗ 2 рдмрд┐рдВрджреБрдУрдВ рдкрд░ goodreads.com рдкрд░ рдпрд╣ рдкреБрд╕реНрддрдХ рдХреНрдпреЛрдВ рд░реЗрдЯ рдХреА рд╣реИред рдЦреИрд░, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдХрд╛рдЙрдВрдЯрд░ рд╕рд╡рд╛рд▓ рд╣реИ: рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдзрд┐рдХ рдбрд╛рд▓рдиреЗ рд▓рд╛рдпрдХ рд╣реИ?
рдпрд╣ рдореБрдЭреЗ рдмрд╣реБрдд рдбрд░рд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреБрд╕реНрддрдХ рд▓рдЧрднрдЧ рдПрдХ рдХреНрд▓рд╛рд╕рд┐рдХ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдореЗрдВ рд╕рдВрджрд┐рдЧреНрдз рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕рдВрджрд┐рдЧреНрдз рдирд┐рдпрдореЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рд╣реИ рдХрд┐ рдХрдм рдФрд░ рдХреИрд╕реЗ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИред рдкреБрд╕реНрддрдХ рдореЗрдВ рдкреИрдЯрд░реНрди рдХрд╛ рдЕрд╕реНрдкрд╖реНрдЯ рд╡рд░реНрдгрди рд╣реИ рдЬреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдкрд╣рд▓реЗ рд╡рд░реНрдгрд┐рдд рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рд╕реЗ рдмрдВрдзрд╛ рдирд╣реАрдВ рд╣реИред рдкреБрд╕реНрддрдХ рдореЗрдВ рджреЛ рдмрд╛рд▓реНрдЯрд┐рдпрд╛рдБ рд╣реИрдВ, рдЬреЛ рдирд╛рдЬреБрдХ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рдирд┐рдпрдо рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреА рд╣реИрдВ рдФрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдХреЗ рд╕рд╛рде рдХреЛрдб рд╣реЛрддреА рд╣реИрдВ, рдЬреЛ рддрдм рдирд╣реАрдВ рд╣реЛрддрд╛ рдЬрдм рдХрдХреНрд╖рд╛ рдХрд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрдо рд╕реЗ рдХрдо рдкрд╣рд▓реЗ рд╕реЗ рд╕реЛрдЪрд╛ рдЧрдпрд╛ рд╣реЛрддрд╛ред рдкреБрд╕реНрддрдХ C # рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реНрд╕ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рд╣реИ, рд▓реЗрдХрд┐рди 2006 рдХреЗ рдорд╛рдирдХреЛрдВ рд╕реЗ рднреА, рдЗрд╕рдореЗрдВ рдХреЛрдб рдмреЗрдХрд╛рд░ рд╣реИред
рдореБрдЭреЗ рдбрд░ рд╣реИ рдХрд┐ рдЗрд╕ рдкреБрд╕реНрддрдХ рдореЗрдВ рдХрд╛рд░реНрдЧреЛ рдХреЗ рдкрдВрде рдХреА рдЧрдВрднреАрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдЕрдЧрд░ рдпрд╣ рдПрдХ рдЕрдиреБрднрд╡рд╣реАрди рдбреЗрд╡рд▓рдкрд░ рджреНрд╡рд╛рд░рд╛ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрдиреБрднрд╡реА рдХреЛ рдХреБрдЫ рднреА рдирд╣реАрдВ рджреЗрдЧрд╛ред рдЗрд╕рд▓рд┐рдП рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдкреБрд╕реНрддрдХ рдХрд╛ рдореБрдЦреНрдп рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЛ SOLID- рдЖрд╣ рдФрд░ рдЕрдиреНрдп рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЯреНрд░реЛрд▓рд┐рдВрдЧ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рднрд╛рдЧ рд▓реЗрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдЕрдзрд┐рдХ рдХреБрдЫ рдирд╣реАрдВред