рдЪрд╛рд░ рдХреЗ рд╕рд┐рдВрдЧрд▓рдЯрди рдЧрд┐рд░реЛрд╣ рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдкреИрдЯрд░реНрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рдХреБрдЫ рдмреБрд░рд╛ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИред рдЖрдк рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рд┐рдВрдЧреНрд▓рдЯрди рджреНрд╡рд╛рд░рд╛ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╡рд┐рднрд┐рдиреНрди рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдХреБрдЫ рдЬреЛрдбрд╝рдирд╛ рд╣реИред
GoF рд╕рд┐рдВрдЧрд▓рдЯрди рдХреЗ рд╕рд╛рде рд╕рднреА рдкрд░реЗрд╢рд╛рдирд┐рдпреЛрдВ рдХрд╛ рдореВрд▓ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, "рд╕рд┐рдВрдЧрд▓рдЯрди" рдЙрдирдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реИред рдпрд╣ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдЗрди рд╡рд░реНрдЧреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдпрджрд┐ рдкреВрд░реА рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдПрдХ рдПрдХрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреА рд╣реИред GoFstance () рд╡рд┐рдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВ, рд╕рднреА рд╕рд┐рдВрдЧрд▓реЗрдЯреЛ рдХреЛ рдмрд╛рд╣рд░ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП GoF рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╡рд┐рд╡рд░рдг рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдХрдХреНрд╖рд╛ рдХреЛ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рдЬрд╛рдП рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛? рд╕рдорд╕реНрдпрд╛рдПрдВ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдПрдВрдЧреАред рдпрджрд┐ рдирдпрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЕрдм рд╕рд┐рдВрдЧрд▓рдЯрди рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рди рдХреЗрд╡рд▓ рдХрдХреНрд╖рд╛ рдХреЛ рдмрд▓реНрдХрд┐ рдЙрд╕рдХреЗ рд╕рднреА рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рднреА рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛, getInstance () рдХреЗ рд▓рд┐рдП рд╕рднреА рдХреЙрд▓ рдХреЛ рд╣рдЯрд╛рдХрд░ рдкреНрд░рддреНрдпреЗрдХ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХреА рд░рдгрдиреАрддрд┐ рдкрд░ рдлрд┐рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдХреНрдпрд╛ рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдФрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЗ рд╕рд╛рде, рдЕрдкрдиреЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рд╕реЗ рд╡рд░реНрдЧ рдХреЗ "рд╕рд┐рдВрдЧрд▓рдЯрди" рд╕рдорд╛рдЪрд╛рд░ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ? рд╡рд╣рд╛рдБ рд╣реИ рдпрд╣ рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдЗрдВрдЬреЗрдХреНрд╢рди / рдХрдВрдЯреНрд░реЛрд▓ рдСрдл рдЗрдиреНрд╡рд░реНрдЯ (IoC) рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд▓ рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред IoC рдХрдВрдЯреЗрдирд░ (IoCC) рдЕрдкрдиреЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рд╕реЗ рд╕рд┐рдВрдЧрд▓рдЯрди рд╡рд░реНрдЧ рдХреЛ рдЫреБрдкрд╛рддрд╛ рд╣реИ рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд▓реЗрддрд╛ рд╣реИ, рд╕рд┐рдВрдЧреНрд▓рдЯрди рдХреЛ рдЗрд╕рд╕реЗ рдореБрдХреНрдд рдХрд░рддрд╛ рд╣реИ : "... рдФрд░ рдЗрд╕реЗ рдЪрд╛рд░ рдХреЗ рдЧрд┐рд░реЛрд╣ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рд╕реЗ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдкрд╣реБрдВрдЪ рдмрд┐рдВрджреБ ..." рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ ред рд╡реИрд╢реНрд╡рд┐рдХ рдкрд╣реБрдВрдЪ рдмрд┐рдВрджреБ рдХреА рдЕрдм рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд╕рд┐рдВрдЧрд▓рдЯрди рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдЕрдм рдареАрдХ рд╕реЗ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдирд┐рд░реНрднрд░рддрд╛ рд╡рд░реНрдЧ IoCC рдХреЗ рдХрд┐рддрдиреЗ рдЙрджрд╛рд╣рд░рдг рдЙрдирдХреЗ рд▓рд┐рдП рдмрдирд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЗрд░рд╛ рдкрд╕рдВрджреАрджрд╛ IoCC Google Guice рдЖрдкрдХреЛ рд╕рд┐рдВрдЧрд▓рдЯрди рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд░реНрдЧ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд: рдпрд╣ рдЖрдкрдХреЛ рдХреНрд▓рд╛рд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рднреА рд╕рдордп рдЗрд╕ рдПрдиреЛрдЯреЗрд╢рди рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред IoCC рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ, "рд╕рд┐рдВрдЧреНрд▓рдЯрди'рд╡реЛрд╕реНрдЯ" рд╣рдореЗрд╢рд╛ рд╕рд┐рдВрдЧрд▓рдЯрди рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рд╡рд░реНрдЧ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдПрдХ рд╡рд┐рд╡рд░рдг рдмрдирд╛ рд╣реБрдЖ рд╣реИред
рдРрд╕реЗ рдЕрдкрд╡рд╛рдж рд╣реИрдВ рдЬрдм "рд╕рд┐рдВрдЧреНрд▓рдЯрди'рд╡реЛрд╕реНрдЯ" рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрд▓рд╛рд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рд╕рдВрдкрддреНрддрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╡рд┐рд╡рд░рдг рдирд╣реАрдВред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЕрдкрд╡рд╛рдж: рдлреНрд▓рд╛рдИрд╡реЗрдЯ рд╕рд┐рдВрдЧрд▓рдЯрдиред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо SQL рднрд╛рд╖рд╛ рдХреЗ рдЕрдореВрд░реНрдд рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдкреЗрдбрд╝ рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛рдПрдВ рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдРрд╕реА рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ SqlNull рд╣реЛрдЧреАред рдпрд╣ рд╡рд╛рдВрдЫрдиреАрдп рд╣реИ рдХрд┐ рдЗрд╕ рд╡рд░реНрдЧ рдореЗрдВ рдПрдХ рдПрдХрд▓ рд╡рд╕реНрддреБ рд╣реИ, рддрд╛рдХрд┐ рд╣рд░ рдХреЛрдИ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддрд╛ рд╣реЛ, рдФрд░ рдЗрд╕ рд╡рд╕реНрддреБ рдХреА рддреБрд▓рдирд╛ рдХреЗрд╡рд▓ рд╕рдВрджрд░реНрдн рд╕реЗ рдХрд░реЗред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, GoF рд╕рд┐рдВрдЧрд▓рдЯрди рд╣рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реВрдЯ рдХрд░рддрд╛ рд╣реИред
So. рд╕реЗрд╡рд╛ рд╡рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдЕрд░реНрдерд╛рддреНред рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП, "рд╕рд┐рдВрдЧреНрд▓рдЯрди'рд╡реЛрд╕реНрдЯ" рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдПрдХ рд╡рд┐рд╡рд░рдг рд╣реИ рдФрд░ рдЖрдИрдУрд╕реАрд╕реА рдЗрд╕реЗ рдЫрд┐рдкрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ; рдлреНрд▓рд╛рдИрд╡реЗрдЯ рд╕рд┐рдВрдЧрд▓рдЯрди рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдФрд░ рдЖрдк рдЗрд╕реЗ GetFstance () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ GoF рджреНрд╡рд╛рд░рд╛ рд╕реБрдЭрд╛рдП рдЧрдП рдЕрдиреБрд╕рд╛рд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред