рдкреНрд░реЗрд░рдгрд╛ рдХреЗ рд╕реНрд░реЛрдд
рдЬреВрдирд┐рдпрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реЛрдВ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдИ рдЧрдИ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдЕрд░рд╛рд╕ рдкреНрд░рд╛рдВрдЯрд╕реНрдХреЗрд╡рд┐рдЪ рджреНрд╡рд╛рд░рд╛ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдП рдЧрдП рдзрдиреНрдпрд╡рд╛рдж рдХреЗ рдХрд╛рд░рдг рдпрд╣ рдкреЛрд╕реНрдЯ рдЖрдпрд╛ред рдпрд╣ рдирдП рдИрд╕реАрдПрд╕ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рдЕрдиреБрдХреВрд▓ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддрд╛ рд╣реИред Aras рд╕рд╛рдорд╛рдиреНрдп рдкреИрдЯрд░реНрди (
рдиреАрдЪреЗ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг ) рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИ: рднрдпрд╛рдирдХ OOP рдХреЛрдб рдХреЗ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рд░рд┐рд▓реЗрд╢рдирд▓ рдореЙрдбрд▓ (
рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд░рд┐рд▓реЗ рдХреЗ рдмрдЬрд╛рдп "ECS" рдХрд╣рддреЗ рд╣реИрдВ ) рдПрдХ рдмрдврд╝рд┐рдпрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдореИрдВ рдЕрд░рд╕ рдХреА рдЖрд▓реЛрдЪрдирд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ - рдореИрдВ рдЙрдирдХреЗ рдХрд╛рдо рдХрд╛ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдкреНрд░рд╢рдВрд╕рдХ рд╣реВрдВ рдФрд░ рдЙрдирдХреА рдЙрддреНрдХреГрд╖реНрдЯ рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЗ рд▓рд┐рдП рдЙрдирдХреА рдкреНрд░рд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ! рдореИрдВрдиреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдИрд╕реАрдПрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реИрдХрдбрд╝реЛрдВ рдЕрдиреНрдп рдкрджреЛрдВ рдХреЗ рдмрдЬрд╛рдп рдЕрдкрдиреА рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЛ рдЪреБрдирд╛ рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рдпрд╛рд╕ рдХрд┐рдП рдФрд░ рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдЕрдзреНрдпрдпрди рдХреЗ рд▓рд┐рдП рдПрдХ рдЧрд┐рдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреАред рдЗрд╕рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╕рд░рд▓ "рдЧреЗрдо" рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди рд╡рд╛рд╕реНрддреБ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рдЪрдпрди рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдЫреЛрдЯреА рд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдиреЗ рдореБрдЭреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рд╛рдордЧреНрд░реА рдкрд░ рдЕрдкрдиреА рдЯрд┐рдкреНрдкрдгреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА, рдЗрд╕рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЕрд░рд╕!
Aras рд╕реНрд▓рд╛рдЗрдб рдпрд╣рд╛рдБ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ:
http://aras-p.info/texts/files/2018Academy - ECS-DoD.pdf , рдФрд░ рдХреЛрдб github рдкрд░ рд╣реИ:
https://github.com/aras-p/dod-playground ред
рдореИрдВ рдЗрд╕ рд░рд┐рдкреЛрд░реНрдЯ рд╕реЗ рдкрд░рд┐рдгрд╛рдореА рдИрд╕реАрдПрд╕ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг (рдЕрднреА рддрдХ рдирд╣реАрдВ) рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ "рдЦрд░рд╛рдм рдУрдУрдкреА" рдХреЛрдб (рднрд░рд╡рд╛рдВ рдЪрд╛рд▓ рдХреЗ рд╕рдорд╛рди) рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред рдореИрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреИрд╕рд╛ рд▓рдЧреЗрдЧрд╛ рдпрджрд┐ рдУрдУрдбреА (рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдбрд┐рдЬрд╝рд╛рдЗрди, рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдбрд┐рдЬрд╝рд╛рдЗрди) рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рд╕рднреА рдЙрд▓реНрд▓рдВрдШрдиреЛрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ред
Spoiler: рд╕рднреА OOD рдЙрд▓реНрд▓рдВрдШрдиреЛрдВ рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рд╕реЗ ECS рд░реВрдкрд╛рдВрддрд░рдгреЛрдВ рдХреЗ рд╕рдорд╛рди Aras рдХреЗ рд╕рдорд╛рди рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ RAM рдХрд╛ рдХрдо рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ ECS рд╕рдВрд╕реНрдХрд░рдг рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреЛрдб рдХреА рдХрдо рд▓рд╛рдЗрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ!TL; DR: рдпрд╣ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ OOP рдмреЗрдХрд╛рд░ рд╣реИ рдФрд░ ECS рдбреНрд░рд╛рдЗрд╡ рдХрд░рддрд╛ рд╣реИ, OOD (рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ OOP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ, рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП) рдХреЛ рд░реЛрдХреЗрдВ рдФрд░ рдЬрд╛рдВрдЪреЗрдВ, рдФрд░ рд░рд┐рд▓реЗрд╢рдирд▓ рдореЙрдбрд▓ (ECS рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдкрддрд╛ рдХрд░реЗрдВ) рдХреЛ рднреА рд╕рдордЭреЗрдВредрдореИрдВ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдордВрдЪ рдкрд░ рдИрд╕реАрдПрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рдЪрд░реНрдЪрд╛рдУрдВ рдореЗрдВ рднрд╛рдЧ рд▓реЗ рд░рд╣рд╛ рд╣реВрдВ, рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдореЙрдбрд▓ рдПрдХ рдЕрд▓рдЧ рд╢рдмреНрдж рдХреЗ рд░реВрдк рдореЗрдВ рдореМрдЬреВрдж рд╣реИ (
рд╕реНрдкреЙрдЗрд▓рд░: рдпрд╣ рд░рд┐рд▓реЗрд╢рдирд▓ рдореЙрдбрд▓ рдХрд╛ рд╕рд┐рд░реНрдл рдПрдХ рдПрдб-рд╣реЙрдХ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ , рдмрд▓реНрдХрд┐ рдЗрд╕рд▓рд┐рдП рднреА рдХреНрдпреЛрдВрдХрд┐ рдИрд╕реАрдПрд╕ рдкреИрдЯрд░реНрди рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрдиреЗ рд╡рд╛рд▓реА рд▓рдЧрднрдЧ
рд╣рд░ рдкреЛрд╕реНрдЯ, рдкреНрд░реЗрдЬреЗрдВрдЯреЗрд╢рди рдпрд╛ рдЖрд░реНрдЯрд┐рдХрд▓ рдирд┐рдореНрди рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИ:
- рднрдпрд╛рдирдХ OOP рдХреЛрдб рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рдПрдВ, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдХреЗ рдЕрддреНрдпрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рдХрд╛рд░рдг рднрдпрд╛рдирдХ рджреЛрд╖ рд╣реИрдВ (рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди OOD рдХреЗ рдХрдИ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рддрд╛ рд╣реИ)ред
- рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд░рдЪрдирд╛ рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рдмреЗрд╣рддрд░ рд╕рдорд╛рдзрд╛рди рд╣реИ (рдФрд░ рдпрд╣ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рд╣реИ рдХрд┐ OOD рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдореЗрдВ рд╡рд╣реА рд╕рдмрдХ рджреЗрддрд╛ рд╣реИ)ред
- рджрд┐рдЦрд╛рдПрдБ рдХрд┐ рд░рд┐рд▓реЗрд╢рдирд▓ рдореЙрдбрд▓ рдЧреЗрдо рдХреЗ рд▓рд┐рдП рдмрдврд╝рд┐рдпрд╛ рд╣реИ (рд▓реЗрдХрд┐рди рдЗрд╕реЗ "рдИрд╕реАрдПрд╕" рдХрд╣реЗрдВ)ред
рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдВрд░рдЪрдирд╛ рдореБрдЭреЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐:
(рдП) рдпрд╣ рдПрдХ рдЪрд╛рд▓ рд╣реИ "рднрд░рд╡рд╛рдВ" ... рдпрд╣ рдирд░рдо рд╕реЗ рдЧрд░реНрдо (рдмреБрд░рд╛ рдХреЛрдб рдФрд░ рдЕрдЪреНрдЫрд╛ рдХреЛрдб) рдХреА рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИ ... рдФрд░ рдпрд╣ рдЕрдиреБрдЪрд┐рдд рд╣реИ, рднрд▓реЗ рд╣реА рдЕрдирдЬрд╛рдиреЗ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ рдФрд░ рдпрд╣ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдирдИ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдЕрдЪреНрдЫреА рд╣реИ; рдФрд░, рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд:
(рдмреА) рдЗрд╕рдХрд╛ рдПрдХ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рд╣реИ - рдРрд╕рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЬреНрдЮрд╛рди рдХреЛ рджрдмрд╛ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЕрдирдЬрд╛рдиреЗ рдореЗрдВ рдЖрдзреА рд╕рджреА рдХреЗ рд▓рд┐рдП рдХрд┐рдП рдЧрдП рдЕрдзреНрдпрдпрди рдХреЗ рд╕рд╛рде рдкрд╛рдардХреЛрдВ рдХреЛ рдкрд░рд┐рдЪрд┐рдд рд╕реЗ рдЕрд▓рдЧ рдХрд░ рджреЗрддрд╛ рд╣реИред рдЙрдиреНрд╣реЛрдВрдиреЗ 1960 рдХреЗ рджрд╢рдХ рдореЗрдВ рд░рд┐рд▓реЗрд╢рдирд▓ рдореЙрдбрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред 70 рдФрд░ 80 рдХреЗ рджрд╢рдХ рдХреЗ рджреМрд░рд╛рди, рдЗрд╕ рдореЙрдбрд▓ рдореЗрдВ рдХрд╛рдлреА рд╕реБрдзрд╛рд░ рд╣реБрдЖ рд╣реИред рд╢реБрд░реБрдЖрддреА рдореЗрдВ рдЕрдХреНрд╕рд░ рд╕рд╡рд╛рд▓ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ "
рдЖрдк рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рдХрд┐рд╕ рд╡рд░реНрдЧ рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? ", рдФрд░ рдЬрд╡рд╛рдм рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдЕрдХреНрд╕рд░ рдХреБрдЫ рдЕрд╕реНрдкрд╖реНрдЯ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ "
рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдЕрдиреБрднрд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЖрдк рд╕рд┐рд░реНрдл рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдордЭрдирд╛ рд╕реАрдЦрддреЗ рд╣реИрдВ " ... рд▓реЗрдХрд┐рди 70 рдХреЗ рджрд╢рдХ рдореЗрдВ рдпрд╣ рдкреНрд░рд╢реНрди рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдерд╛ред рдЕрдзреНрдпрдпрди рдХрд┐рдпрд╛ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рдФрдкрдЪрд╛рд░рд┐рдХ рдЬрд╡рд╛рдм рдХрд╛рдЯрд╛ рдЧрдпрд╛; рдЗрд╕реЗ
рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рдХрд╣рд╛ рдЬрд╛рддрд╛
рд╣реИ ред рдореМрдЬреВрджрд╛ рд╢реЛрдз рдФрд░ рдИрд╕реАрдПрд╕ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирдпрд╛ рдФрд░ рдЖрдзреБрдирд┐рдХ рд╕рдорд╛рдзрд╛рди рдмрддрд╛рддреЗ рд╣реБрдП, рдЖрдк рдЗрд╕ рдЬреНрдЮрд╛рди рдХреЛ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рд╕реЗ рдЫрд┐рдкрд╛рддреЗ рд╣реИрдВред
рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рдмрд╣реБрдд рдкрд╣рд▓реЗ рд╣реА рд░рдЦреА рдЧрдИ рдереАрдВ, рдпрджрд┐ рдкрд╣рд▓реЗ рдирд╣реАрдВ (
1950 рдХреЗ рджрд╢рдХ рдХреЗ рдХрд╛рдо рдореЗрдВ рдЗрд╕ рд╢реИрд▓реА рдХреА рдЦреЛрдЬ рдХреА рдЬрд╛рдиреЗ рд▓рдЧреА )! рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ 1990 рдХреЗ рджрд╢рдХ рдореЗрдВ рдерд╛ рдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрд╢рди рдлреИрд╢рдиреЗрдмрд▓, рд╡рд╛рдпрд░рд▓ рд╣реЛ рдЧрдпрд╛, рдФрд░ рдмрд╣реБрдд рдЬрд▓реНрджреА рдкреНрд░рдореБрдЦ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкреНрд░рддрд┐рдорд╛рди рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛ред рдЬрд╛рд╡рд╛ рдФрд░ (
рдорд╛рдирдХреАрдХреГрдд рд╕рдВрд╕реНрдХрд░рдг ) C ++ рд╕рд╣рд┐рдд рдХрдИ рдирдИ OO рднрд╛рд╖рд╛рдУрдВ рдХреА рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдХрд╛ рд╡рд┐рд╕реНрдлреЛрдЯ рд╣реБрдЖ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЪреВрдВрдХрд┐ рдпрд╣ рдкреНрд░рдЪрд╛рд░ рдХреЗ рдХрд╛рд░рдг рдерд╛, рд╕рднреА рдХреЛ рдЕрдкрдиреЗ рд░рд┐рдЬреНрдпреВрдо рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╣рд╛рдИ-рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХреЙрдиреНрд╕реЗрдкреНрдЯ
рдХреЛ рдЬрд╛рдирдирд╛
рдЖрд╡рд╢реНрдпрдХ рдерд╛ , рд▓реЗрдХрд┐рди рдХреБрдЫ рд╣реА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реБрдПред рдЗрди рдирдИ рднрд╛рд╖рд╛рдУрдВ рдиреЗ OO рдХреА рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдХреАрд╡рд░реНрдб -
рдХреНрд▓рд╛рд╕ ,
рд╡рд░реНрдЪреБрдЕрд▓ ,
рдПрдХреНрд╕рдЯреЗрдВрдб ,
рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯ - рдмрдирд╛рдП, рдФрд░ рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЗрд╕реАрд▓рд┐рдП рдЙрд╕ рд╕рдордп OO рдХреЛ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрд╕реНрдерд╛рдУрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛, рдЬреЛ рдЕрдкрдирд╛ рдЬреАрд╡рди рдЬреАрддреЗ рд╣реИрдВред
рдореИрдВ рдЗрди OO- рдкреНрд░реЗрд░рд┐рдд рднрд╛рд╖рд╛ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ "
OOP " рдФрд░
OO- рдкреНрд░реЗрд░рд┐рдд рдбрд┐рдЬрд╛рдЗрди / рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рддрдХрдиреАрдХреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ "
OOD " рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░реВрдВрдЧрд╛ред рд╕рднреА рдиреЗ рдмрд╣реБрдд рдЬрд▓реНрджреА OOP рдЙрдард╛рдпрд╛ред рд╢реИрдХреНрд╖рд┐рдХ рд╕рдВрд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдУрдУ рдкрд╛рдареНрдпрдХреНрд░рдо рд╣реИрдВ рдЬреЛ рдирдП рдУрдУрдкреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдмреЗрдХ рдХрд░рддреЗ рд╣реИрдВ ... рд╣рд╛рд▓рд╛рдВрдХрд┐, рдУрдУрдбреА рдХрд╛ рдЬреНрдЮрд╛рди рдкреАрдЫреЗ рд░рд╣рддрд╛ рд╣реИред
рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рд╡рд╣ рдХреЛрдб рдЬреЛ OOP рдХреА рднрд╛рд╖рд╛ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди OOD рдбрд┐рдЬрд╛рдЗрди рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ,
рдПрдХ OO рдХреЛрдб рдирд╣реАрдВ рд╣реИ ред OOP рдХреЗ рдЦрд┐рд▓рд╛рдл рдЕрдзрд┐рдХрд╛рдВрд╢ рдЖрд▓реЛрдЪрдирд╛рдПрдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЖрдВрдд рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ OO рдХреЛрдб рдирд╣реАрдВ рд╣реИред
OOP рдХреЛрдб рдХреА рдмрд╣реБрдд рдЦрд░рд╛рдм рдкреНрд░рддрд┐рд╖реНрдард╛ рд╣реИ, рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВрдХрд┐ OOP рдХреЛрдб рдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ OOD рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП "OO" рдХреЛрдб рдирд╣реАрдВ рд╣реИред
рдЖрд╡рд╢реНрдпрдХ рд╢рд░реНрддреЗрдВ
рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ, 1990 рдХрд╛ рджрд╢рдХ "рдУрдУ рдлреИрд╢рди" рдХрд╛ рдЪрд░рдо рдмрди рдЧрдпрд╛, рдФрд░ рдпрд╣ рдЙрд╕ рд╕рдордп рдерд╛ рдХрд┐ "рдЦрд░рд╛рдм рдУрдУрдкреА" рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рдерд╛ред рдпрджрд┐ рдЖрдкрдиреЗ рдЙрд╕ рд╕рдордп рдУрдУрдкреА рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд┐рдпрд╛ рдерд╛, рддреЛ рдЖрдкрдХреЛ "рдУрдУрдкреА рдХреЗ рдЪрд╛рд░ рд╕реНрддрдВрдн" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛ рдерд╛:
- рд╕рд╛рд░ рд╕рдВрдХреНрд╖реЗрдк
- рдХреИрдкреНрд╕реВрд▓реАрдХрд░рдг
- рдмрд╣реБрд░реВрдкрддрд╛
- рд╡рд┐рд░рд╛рд╕рдд
рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдЪрд╛рд░ рд╕реНрддрдВрдн рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ "рдЪрд╛рд░ рдУрдУрдкреА рдЙрдкрдХрд░рдг" рдХрд╣рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред рдпреЗ рдРрд╕реЗ рдЙрдкрдХрд░рдг рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ
рдЖрдк рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░
рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдкрдХрд░рдг рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдм
рдХрд░рдирд╛ рд╣реИ ... рд╢рд┐рдХреНрд╖рдХреЛрдВ рдХреА рдУрд░ рд╕реЗ, рд▓реЛрдЧреЛрдВ рдХреЛ рдПрдХ рдирдпрд╛ рдЙрдкрдХрд░рдг рд╕рд┐рдЦрд╛рдирд╛ рдЧреИрд░-рдЬрд┐рдореНрдореЗрджрд╛рд░рд╛рдирд╛ рд╣реИ, рдпрд╣ рдмрддрд╛рдирд╛ рдирд╣реАрдВ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХрдм рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд▓рд╛рдпрдХ рд╣реИред 2000 рдХреЗ рджрд╢рдХ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдЗрди рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рдХреНрд░рд┐рдп рджреБрд░реБрдкрдпреЛрдЧ рдХрд╛ рд╡рд┐рд░реЛрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ OOD рд╕реЛрдЪ рдХреА "рджреВрд╕рд░реА рд▓рд╣рд░" рдереАред рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо
SOLID mnemonics рдХрд╛ рдЙрджреНрднрд╡ рдерд╛, рдЬрд┐рд╕рдиреЗ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреА рддрд╛рдХрдд рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддреНрд╡рд░рд┐рдд рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ред рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдЬреНрдЮрд╛рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ 90 рдХреЗ рджрд╢рдХ рдореЗрдВ рд╡реНрдпрд╛рдкрдХ рдерд╛, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдПрдХ рд╢рд╛рдВрдд рдкрд░рд┐рдЪрд┐рдд рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рдЬрд┐рд╕рдиреЗ рдЙрдиреНрд╣реЗрдВ рдкрд╛рдВрдЪ рдмреБрдирд┐рдпрд╛рджреА рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ ...
- рдПрдХрдорд╛рддреНрд░ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд ( S ingle рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╕рд┐рджреНрдзрд╛рдВрдд)ред рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдЧ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рдХрд╛рд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдХрдХреНрд╖рд╛ "рдП" рдореЗрдВ рджреЛ рдЬрд┐рдореНрдореЗрджрд╛рд░рд┐рдпрд╛рдВ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдЧ "рдмреА" рдФрд░ "рд╕реА" рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ "рдмреА" рдФрд░ "рд╕реА" рд╕реЗ "рдП" рдмрдирд╛рдПрдВред
- рдЦреБрд▓реЗрдкрди / рдмрдВрдж рдХрд░рдиреЗ рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд ( рдУ рдкреЗрди / рдмрдВрдж рд╕рд┐рджреНрдзрд╛рдВрдд)ред рд╕рдордп рдХреЗ рд╕рд╛рде рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдмрджрд▓рддрд╛ рд╣реИ ( рдпрд╛рдиреА рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ )ред рдЙрди рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдЬреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд░рдЦрддреЗ рд╣реИрдВ ( рдпрд╛рдиреА, рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ ) рдФрд░ рдЙрди рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рдмрджрд▓рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ ( рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рд╛рд░ рдЖрдзрд╛рд░ рд╡рд░реНрдЧ )ред
- рдмрд╛рд░рдмрд░рд╛ рд▓рд┐рд╕реНрдХреЛрд╡ ( рдПрд▓ iskov рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╕рд┐рджреНрдзрд╛рдВрдд) рдХрд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╕рд┐рджреНрдзрд╛рдВрддред рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЕрд░реНрдерд╛рдд рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рдХрд┐рд╕реА рднреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
- рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдЕрд▓рдЧрд╛рд╡ рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд ( I nterface рдЕрд▓рдЧрд╛рд╡ рд╕рдореВрд╣)ред рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдЫреЛрдЯрд╛ рдмрдирд╛рдПрдВ рддрд╛рдХрд┐ рдХреЛрдб рдЖрдзрд╛рд░ рдХреА рд╕рдмрд╕реЗ рдЫреЛрдЯреА рд░рд╛рд╢рд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдб рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рднрд╛рдЧ "рдЬрд╛рдирддрд╛" рд╣реЛ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдирд╛рд╡рд╢реНрдпрдХ рдирд┐рд░реНрднрд░рддрд╛ рд╕реЗ рдмрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЯрд┐рдк C ++ рдХреЗ рд▓рд┐рдП рднреА рдЕрдЪреНрдЫрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд╕рдВрдХрд▓рди рд╕рдордп рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рдЗрд╕рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
- рдирд┐рд░реНрднрд░рддрд╛ рдЙрд▓рдЯрд╛ рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд ( рдбреА рдПрдкреЗрдВрдбреЗрдВрд╕реА рдЙрд▓рдЯрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд)ред рджреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиреЛрдВ рдХреЗ рдмрдЬрд╛рдп рдЬреЛ рд╕реАрдзреЗ рд╕рдВрд╡рд╛рдж рдХрд░рддреЗ рд╣реИрдВ (рдФрд░ рдПрдХ рджреВрд╕рд░реЗ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВ), рдЙрдиреНрд╣реЗрдВ рдЖрдорддреМрд░ рдкрд░ рдЙрдирдХреЗ рд╕рдВрдЪрд╛рд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рддреАрд╕рд░реЗ рд╡рд░реНрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдирдХреЗ рдмреАрдЪ рдХреЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдЕрдореВрд░реНрдд рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЙрдирдХреЗ рдмреАрдЪ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЧрдП рддрд░реАрдХреЛрдВ рдХреА рдХреЙрд▓ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рд┐рд░реНрдл рдПрдХ рдкреАрдУрдбреА рд╕рдВрд░рдЪрдирд╛ рд╣реИ рдЬреЛ рдЙрдирдХреЗ рдмреАрдЪ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдбреЗрдЯрд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред
- рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдПрд╕рдУрдПрд▓рдЖрдИрдбреА рдореЗрдВ рдПрдХ рдФрд░ рд╕рд┐рджреНрдзрд╛рдВрдд рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ: "рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░ рдкрд░ рд░рдЪрдирд╛ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВ" (рд╕рдордЧреНрд░ рдкреБрди: рдЙрдкрдпреЛрдЧ рд╕рд┐рджреНрдзрд╛рдВрдд)ред рд░рдЪрдирд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рд╣реА рд╡рд┐рдХрд▓реНрдк рд╣реИ ред рдЗрдирд╣реЗрд░рд┐рдЯреЗрдВрд╕ рдХреЛ рдЙрди рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдЖрд╡рд╢реНрдпрдХ рд╣реЛред
рддреЛ рд╣рдореЗрдВ SOLID-C (++) рдорд┐рд▓рддрд╛ рд╣реИ

рдиреАрдЪреЗ рдореИрдВ рдЗрди рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рд╕рдВрджрд░реНрдн рджреВрдВрдЧрд╛, рдЙрдиреНрд╣реЗрдВ рдПрд╕рдЖрд░рдкреА - рдПрд╕рдЖрд░рдкреА, рдУрд╕реАрдкреА, рдПрд▓рдПрд╕рдкреА, рдЖрдИрдПрд╕рдкреА, рдбреАрдЖрдИрдкреА, рд╕реАрдЖрд░рдкреА ...
рдХреБрдЫ рдФрд░ рдиреЛрдЯ:
- OOD рдореЗрдВ, рдЗрдВрдЯрд░рдлреЗрд╕ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ OOP рдХреАрд╡рд░реНрдб рд╕реЗ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред C ++ рдореЗрдВ, рд╣рдо рдЕрдХреНрд╕рд░ рдПрдмреНрд╕рдЯреНрд░реИрдХреНрдЯ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдФрд░ рд╡рд░реНрдЪреБрдЕрд▓ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░рдлреЗрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЗрди рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рд╕реЗ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░рддреЗ рд╣реИрдВ ... рд▓реЗрдХрд┐рди рдпрд╣ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрд░реАрдХрд╛ рд╣реИред C ++ рдореЗрдВ, рд╣рдо PIMPL , рдЕрдкрд╛рд░рджрд░реНрд╢реА рдкреЙрдЗрдВрдЯрд░реНрд╕ , рдмрддрдЦ рдЯрд╛рдЗрдкрд┐рдВрдЧ , рдЯрд╛рдЗрдкреАрдбрд┐рдл рдЖрджрд┐ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ... рдЖрдк рдПрдХ OOD рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ C рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ OOP рднрд╛рд╖рд╛ рдХреАрд╡рд░реНрдб рдирд╣реАрдВ рд╣реИрдВ! рдЗрд╕рд▓рд┐рдП рдЬрдм рдореИрдВ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдЬрд░реВрд░реА рдирд╣реАрдВ рдХрд┐ рдЖрднрд╛рд╕реА рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдорддрд▓рдм рд╣реИ - рдореИрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЗрдВрдЯрд░рдлреЗрд╕ рдмрд╣реБрд░реВрдкреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдмрд╛рд░ рд╡реЗ рдирд╣реАрдВ рд╣реИрдВ! рдмрд╣реБрд░реВрдкрддрд╛ рдмрд╣реБрдд рдХрдо рд╣реА рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рднреА рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлреЗрд╕ рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИред
- рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рд╕реНрдкрд╖реНрдЯ рдХрд┐рдпрд╛ рд╣реИ, рдпрджрд┐ рдЖрдк рдПрдХ POD рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рдХреЗрд╡рд▓ рдПрдХ рд╡рд░реНрдЧ рд╕реЗ рджреВрд╕рд░реЗ рд╡рд░реНрдЧ рдореЗрдВ рд╕рдВрдЪрд░рдг рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдпрд╣ рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рдФрдкрдЪрд╛рд░рд┐рдХ рд╡рд┐рд╡рд░рдг рд╣реИ ред
- рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдЖрдк рдХреЗрд╡рд▓ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдФрд░ рдирд┐рдЬреА рднрд╛рдЧреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд▓рдЧ рд╡рд░реНрдЧ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдЬреЛ рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рднрд╛рдЧ рдореЗрдВ рд╣реИ рд╡рд╣ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ , рдФрд░ рдирд┐рдЬреА рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рд╕рдм рдХреБрдЫ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ ред
- рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ (рдХрдо рд╕реЗ рдХрдо) рджреЛ рдкреНрд░рдХрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВ - рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд░рд╛рд╕рддред
- C ++ рдореЗрдВ, рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЗрдирд╣реЗрд░рд┐рдЯреЗрдВрд╕ рдореЗрдВ рд╢реБрджреНрдз рд╡рд░реНрдЪреБрдЕрд▓ рдлрд╝рдВрдХреНрд╢рдВрд╕, PIMPL, рд╕рд╢рд░реНрдд рдЯрд╛рдЗрдкрдбреЗрдлрд╝ рдХреЗ рд╕рд╛рде рдЕрдореВрд░реНрдд рдЖрдзрд╛рд░ рдХрдХреНрд╖рд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЬрд╛рд╡рд╛ рдореЗрдВ, рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╡рд┐рд░рд╛рд╕рдд рдХреЛ рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯ рдХреАрд╡рд░реНрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- C ++ рдореЗрдВ, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рд╡рд┐рд░рд╛рд╕рдд рд╣рд░ рдмрд╛рд░ рд╣реЛрддреА рд╣реИ рдЬрдм рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рдореЗрдВ рд╢реБрджреНрдз рдЖрднрд╛рд╕реА рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рдФрд░ рд╣реЛрддрд╛ рд╣реИред рдЬрд╛рд╡рд╛ рдореЗрдВ, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред
- OOD рдХреЗ рдкрд╛рд╕ рдЗрдВрдЯрд░рдлреЗрд╕ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рд▓реЗрдиреЗ рдХреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдирд┐рдпрдо рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рд╡рд┐рд░рд╛рд╕рдд рдЖрдорддреМрд░ рдкрд░ "рдХрд╛рдЯрдиреЗ рдХреЗ рд╕рд╛рде рдХреЛрдб" рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ!
рдФрд░ рдЕрдВрдд рдореЗрдВ, рдореБрдЭреЗ рднрдпрд╛рдирдХ рдУрдУрдкреА рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рдиреЗ рдЪрд╛рд╣рд┐рдП рдФрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдореЗрдВ рдмреБрд░реЗ рдХреЛрдб рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ (рдФрд░ рдУрдУрдкреА рдХреА рдЦрд░рд╛рдм рдкреНрд░рддрд┐рд╖реНрдард╛)ред
- рдЬрдм рдЖрдкрдХреЛ рдкрджрд╛рдиреБрдХреНрд░рдо / рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдкрдврд╝рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рд╕рдорд╛рди рдХрд╛рд░реНрдп рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдЖрд╡реЗрджрди рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЫрд╛рддреНрд░реЛрдВ рдФрд░ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╣реИред рдЖрдк рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдкрд░реНрд╕рди, рдФрд░ рдлрд┐рд░ рд╕реНрдЯреВрдбреЗрдВрдЯ рдХреНрд▓рд╛рд╕ рдФрд░ рд╕реНрдЯрд╛рдл рдХреНрд▓рд╛рд╕ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдкрд░реНрд╕рди рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИред
рдирд╣реАрдВ, рдирд╣реАрдВ, рдирд╣реАрдВред рдпрд╣рд╛рдВ рдореИрдВ рддреБрдореНрд╣реЗрдВ рд░реЛрдХреВрдВрдЧрд╛ред рдПрд▓рдПрд╕рдкреА рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдЕрдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд╣рд┐рддрд╛рд░реНрде рдпрд╣ рд╣реИ рдХрд┐ рд╡рд░реНрдЧ рдкрджрд╛рдиреБрдХреНрд░рдо рдФрд░ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдЬреЛ рдЙрдиреНрд╣реЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рд╡реЗ рд╕рд╣рдЬреАрд╡реА рд╣реИрдВред рдпреЗ рдкреВрд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рджреЛ рднрд╛рдЧ рд╣реИрдВред OOP рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд╛ рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реИ, рдФрд░ рдпрд╣ рдЕрднреА рднреА рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЗрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдпрджрд┐ рд╣рдо рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЫрд╛рддреНрд░реЛрдВ рдФрд░ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ ( рдФрд░ рдХреМрди рд╕реЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рдмрд╣реБрд░реВрдкрддрд╛ рдХреЗ рдХрд╛рд░рдг рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ ), рддреЛ рдпрд╣ рд╡рд░реНрдЧ рдкрджрд╛рдиреБрдХреНрд░рдореЛрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧреИрд░ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдЧрд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдФрд░ рдбреЗрдЯрд╛ рдХреЛ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ред - рдЬрдм рдЖрдкрдХреЛ рдкрджрд╛рдиреБрдХреНрд░рдо / рд╡рд┐рд░рд╛рд╕рдд рд╕рд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдЖрдкрдХреЛ рд╕рдВрднрд╡рддрдГ рдПрдХ рд╕рдорд╛рди рдХрд╛рд░реНрдп рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЖрдХреГрддрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╡рд░реНрдЧ рд╣реИред рдЙрдкрд╡рд░реНрдЧреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд░реНрдЧ рдФрд░ рдЖрдпрддреЗрдВ рднреА рд╣реИрдВред рдХреНрдпрд╛ рдПрдХ рд╡рд░реНрдЧ рдПрдХ рдЖрдпрдд, рдпрд╛ рдПрдХ рдЖрдпрдд рдПрдХ рд╡рд░реНрдЧ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?
рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиреЛрдВ рдХреА рд╡рд┐рд░рд╛рд╕рдд рдФрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреА рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИред
рдЯреАрдПрд▓; рдбреАрдЖрд░ - рдЖрдкрдХреЗ рдУрдУрдкреА рд╡рд░реНрдЧ рдиреЗ рдЖрдкрдХреЛ рдмрддрд╛рдпрд╛ рдХрд┐ рд╡рд┐рд░рд╛рд╕рдд рдХреНрдпрд╛ рдереАред рдЖрдкрдХреЗ рд▓рд╛рдкрддрд╛ OOD рд╡рд░реНрдЧ рдиреЗ рдЖрдкрдХреЛ рдмрддрд╛рдпрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╡рд╣ 99% рд╕рдордп рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛!
рдЗрдХрд╛рдИ / рдШрдЯрдХ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ
рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рдмрд╛рдж, рдЕрд░рд╕ рдЬрд╣рд╛рдВ рд╢реБрд░реВ рд╣реБрдЖ - рдПрдХ "рд╡рд┐рд╢рд┐рд╖реНрдЯ рдИрдУрдкреА" рдХреЗ рддрдерд╛рдХрдерд┐рдд рд╢реБрд░реБрдЖрддреА рдмрд┐рдВрджреБ рдкрд░ рдЖрдЧреЗ рдмрдврд╝реЗрдВред
рд▓реЗрдХрд┐рди рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдПрдХ рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ - рдЕрд░рд╛рд╕ рдЗрд╕ рдХреЛрдб рдХреЛ "рдкрд╛рд░рдВрдкрд░рд┐рдХ рдУрдУрдкреА" рдХрд╣рддрд╛ рд╣реИ, рдФрд░ рдореИрдВ рдЗрд╕ рдкрд░ рдЖрдкрддреНрддрд┐ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдпрд╣ рдХреЛрдб рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдореЗрдВ OOP рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди, рдКрдкрд░ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рддрд░рд╣, рдпрд╣ OO рдХреЗ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдкрд╛рд░рдВрдкрд░рд┐рдХ рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореИрдВ ECS рдХреА рдУрд░ рд╕рдВрд░рдЪрдирд╛ рдХрд╛
рдкреБрди : рдирд┐рд░реНрдорд╛рдг рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкрд╣рд▓реА рдмрд╛рд░ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реВрдВрдЧрд╛:
"рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдХрд╛рдо рдХрд░реЗрдВ" 3529f232510c95f53112bbfff87df6bbc6aa1fae
рд╣рд╛рдВ, рдХреЛрдб рдХреА рд╕реМ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рддреБрд░рдВрдд рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рддреЛ рдЪрд▓реЛ рдзреАрд░реЗ-рдзреАрд░реЗ рд╢реБрд░реВ рдХрд░реЗрдВ ... рд╣рдореЗрдВ рдкреВрд░реНрд╡рд╛рдкреЗрдХреНрд╖рд╛рдУрдВ рдХреЗ рдПрдХ рдФрд░ рдкрд╣рд▓реВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдХреЛрдб рдкреБрди: рдЙрдкрдпреЛрдЧ рдХреА рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 90 рдХреЗ рджрд╢рдХ рдХреЗ рдЦреЗрд▓ рдореЗрдВ рд╡рд┐рд░рд╛рд╕рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд▓реЛрдХрдкреНрд░рд┐рдп рдерд╛ред рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрдХрд╛рдИ, рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓ рдХреИрд░реЗрдХреНрдЯрд░, рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓ рдкреНрд▓реЗрдпрд░ рдФрд░ рдореЙрдиреНрд╕реНрдЯрд░, рдЗрддреНрдпрд╛рджрд┐ рд╣реИрдВ ... рдпрд╣ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдПрдХ рд╡рд┐рд░рд╛рд╕рдд рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдерд╛ (
"рдПрдХ рдЪреЛрдХ рдХреЗ рд╕рд╛рде рдХреЛрдб" ), рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдпрд╣ рдмрд╣реБрдд рд╣рдж рддрдХ рд╣реЛрддрд╛ рд╣реИ рдЕрдирдореНрдп рдХреЛрдб рдЖрдзрд╛рд░ред рдХреНрдпреЛрдВрдХрд┐ OOD рдХреЗ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд "рд╡рд┐рд░рд╛рд╕рдд рдкрд░ рд░рдЪрдирд╛" рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рд╣реИред рдЗрд╕рд▓рд┐рдП, 2000 рдХреЗ рджрд╢рдХ рдореЗрдВ, "рдЗрдирд╣реЗрд░рд┐рдЯреЗрдВрд╕ рдкрд░ рд░рдЪрдирд╛" рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реЛ рдЧрдпрд╛, рдФрд░ рдЧреЗрдо рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рд╕рдорд╛рди рдХреЛрдб рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред
рдпрд╣ рдХреЛрдб рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ? рдЦреИрд░ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ,
рдпрд╣ рдХреЛрдб рднрд╛рд╖рд╛ рдХреА рдПрдХ рдореМрдЬреВрджрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ - рдПрдХ рд░рдирдЯрд╛рдЗрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд░реВрдк рдореЗрдВ
рд░рдЪрдирд╛ , рдФрд░ рднрд╛рд╖рд╛ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВред рдЖрдк рдЗрд╕рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рдХреЛрдб рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдзрд╛рддреБ рднрд╛рд╖рд╛ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП C ++ рдФрд░ рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди (VM) рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рдирдпрд╛ рдореЗрдЯрд▓рдВрдЧреЗрдЬ рдмрдирд╛ рд░рд╣реЗ рдереЗред рдЕрд░рд╕ рдбреЗрдореЛ рдЧреЗрдо рдореЗрдВ, рдЗрд╕ рдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ (
рд╣рдо рдЗрд╕реЗ рдЬрд▓реНрдж рд╣реА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рдЯрд╛ рджреЗрдВрдЧреЗ! ) рдФрд░ рдХреЗрд╡рд▓ 10 рдмрд╛рд░ рдЦреЗрд▓ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рд╡рд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ? рдпрд╣ "
E ntity /
C omponent system" (
рдХрднреА-рдХрднреА " E ntity / C omponent system" рдирд╛рдордХ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ) рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ "
E ntity
C " рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рдЕрд▓рдЧ
рд╣реИ omponent
S ystem "(" рдПрдВрдЯрд┐рдЯреА-рдХрдВрдкреЛрдиреЗрдВрдЯ-рд╕рд┐рд╕реНрдЯрдо ") (
рдЬреЛ рд╕реНрдкрд╖реНрдЯ рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдХрднреА рднреА" E ntity C omponent S ystem systems )
рдирд╣реАрдВ рдХрд╣рд▓рд╛рддрд╛ рд╣реИ ред рдпрд╣ "EC" рдХреЗ рдХрдИ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЛ рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рджреЗрддрд╛ рд╣реИ:
- рдЦреЗрд▓ "рд╕рдВрд╕реНрдерд╛рдУрдВ" ("рдЗрдХрд╛рдИ") рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рд╡рд╛рд▓реЗ рдирд╣реАрдВ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ ( рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ GameObjects рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ ), рдЬрд┐рд╕рдореЗрдВ "рдШрдЯрдХ" ("рдШрдЯрдХ") рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
- GameObjects "рд╕реЗрд╡рд╛ рд▓реЛрдХреЗрдЯрд░" рдкреИрдЯрд░реНрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ - рдЙрдирдХреЗ рдмрд╛рд▓ рдШрдЯрдХреЛрдВ рдХреЛ рдкреНрд░рдХрд╛рд░ рд╕реЗ рд╕рдордЭрд╛ рдЬрд╛рдПрдЧрд╛ред
- рдЕрд╡рдпрд╡ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдХрд┐рд╕ GameObject рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ - рд╡реЗ рдЙрди рдШрдЯрдХреЛрдВ рдХреЛ рдЦреЛрдЬ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЙрдирдХреЗ рд╕рд╛рде рд╕рдорд╛рди рд╕реНрддрд░ рдкрд░ рд╣реИрдВред
- рд░рдЪрдирд╛ рдХреЗрд╡рд▓ рдПрдХ рд╕реНрддрд░ рдЧрд╣рд░реА рд╣реЛ рд╕рдХрддреА рд╣реИ ( рдШрдЯрдХреЛрдВ рдХреЗ рдЕрдкрдиреЗ рдмрдЪреНрдЪреЗ рдХреЗ рдШрдЯрдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, GameObjects рдХреЗ рдкрд╛рд╕ рдмрдЪреНрдЪреЗ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ GameObjects )ред
- рдЧреЗрдордСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рдШрдЯрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ( рдХреБрдЫ рдЪреМрдЦрдЯреЗ рдореЗрдВ рдпрд╣ рдЕрдирд┐рд╡рд╛рд░реНрдп рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рджреВрд╕рд░реЛрдВ рдореЗрдВ рдирд╣реАрдВ )ред
- рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ (рд╢рд╛рдпрдж) рдХреБрдЫ рдЕрдирд┐рд░реНрджрд┐рд╖реНрдЯ рддрд░реАрдХреЗ рд╕реЗ рд╕рдордп рдХреЗ рд╕рд╛рде рдмрджрд▓рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ "рд╡рд░реНрдЪреБрдЕрд▓ рд╢реВрдиреНрдп рдЕрдкрдбреЗрдЯ" рд╣реЛрддрд╛ рд╣реИред
- GameObjects рдПрдХ рдРрд╕реЗ рджреГрд╢реНрдп рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рдЬреЛ рд╕рднреА GameObjects (рдФрд░ рдЗрд╕рд▓рд┐рдП рд╕рднреА рдШрдЯрдХреЛрдВ) рдкрд░ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред
2000 рдХреЗ рджрд╢рдХ рдореЗрдВ рдПрдХ рд╕рдорд╛рди рдЕрд╡рдзрд╛рд░рдгрд╛ рдмрд╣реБрдд рд▓реЛрдХрдкреНрд░рд┐рдп рдереА, рдФрд░ рдЗрд╕рдХреА рд╕реАрдорд╛рдУрдВ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдпрд╣ рддрдм рдФрд░ рдЖрдЬ рджреЛрдиреЛрдВ рдХреЗ рдЕрдирдЧрд┐рдирдд рдЦреЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рд▓рдЪреАрд▓рд╛ рд╣реЛ рдЧрдпрд╛ред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЖрдкрдХреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рднрд╛рд╖рд╛ рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд░рдЪрдирд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реИ - рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлреВрд▓рд╛ рд╣реБрдЖ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ ... рдХреНрдпреЛрдВ, рдлрд┐рд░, рдХреНрдпрд╛ рдпреЗ рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдВ рдореМрдЬреВрдж рд╣реИрдВ? рдЦреИрд░, рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рд╡реЗ рдЖрдкрдХреЛ
рд░рдирдЯрд╛рдЗрдо рдкрд░ рдЧрддрд┐рд╢реАрд▓ рд░рдЪрдирд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдХреЛрдб рдореЗрдВ GameObject рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рдЙрдиреНрд╣реЗрдВ рдбреЗрдЯрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЧреЗрдо / рд╕реНрддрд░ рдХреЗ рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рдХреЛ рдЕрдкрдиреЗ рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ ... рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдзрд┐рдХрд╛рдВрд╢ рдЧреЗрдо рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдмрд╣реБрдд рдХрдо рдбрд┐рдЬрд╛рдЗрдирд░ рдФрд░ рд╕рдЪрдореБрдЪ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреА рдПрдХ рдкреВрд░реА рд╕реЗрдирд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рддрд░реНрдХ рджреВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрд╡рд╕рд░ рд╣реИред рдЗрд╕рд╕реЗ рднреА рдмрджрддрд░, рдпрд╣ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдЬрдм рдЖрдк рдХрд┐рд╕реА рд░рдЪрдирд╛ рдХреЛ рд░рдирдЯрд╛рдЗрдо рдкрд░ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ! рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХрддрд╛ C # рдХреЛ рдЕрдкрдиреА "рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛" рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ, рдФрд░ рдХрдИ рдЕрдиреНрдп рдЦреЗрд▓ рдЗрд╕рдХреЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Lua - рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдХрд░рдг рдРрд╕реА рдлреВрд▓рд╛ рд╣реБрдЖ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ рдирдП рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП C # / Lua рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ! рд╣рдо рдЕрдЧрд▓реА рдкреЛрд╕реНрдЯ рдореЗрдВ рдЗрд╕ "рд╕реБрд╡рд┐рдзрд╛" рдХреЛ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝реЗрдВрдЧреЗ, рдФрд░ рдЗрд╕реЗ рдмрдирд╛рдПрдВрдЧреЗ рддрд╛рдХрд┐ рдпрд╣ рд╣рдорд╛рд░реЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рджрд╕ рдЧреБрдирд╛ рдХрдореА рди рдХрд░реЗ ...
рдЖрдЗрдП OOD рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЗрд╕ рдХреЛрдб рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░реЗрдВ:
- GameObject :: GetComponent рдбрд╛рдпрдирд╛рдорд┐рдХ_рдХрд╛рд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЬреНрдпрд╛рджрд╛рддрд░ рд▓реЛрдЧ рдЖрдкрдХреЛ рдмрддрд╛рдПрдВрдЧреЗ рдХрд┐ рдбрд╛рдпрдиреЗрдорд┐рдХ_рдХрд╛рд╕реНрдЯ рдПрдХ "рдПрдХ рдЪреЛрдХ рдХреЗ рд╕рд╛рде рдХреЛрдб" рд╣реИ, рдПрдХ рдмрдбрд╝рд╛ рд╕рдВрдХреЗрдд рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдмрдЧ рд╣реИред рдореИрдВ рдпрд╣ рдХрд╣реВрдВрдЧрд╛ - рдпрд╣ рд╕рдмреВрдд рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдПрд▓рдПрд╕рдкреА рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд┐рдпрд╛ рд╣реИ - рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╣реИрдВ рдЬреЛ рдЖрдзрд╛рд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рдЬрд╛рдирдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░рдг рд╕реЗ, рдХреЛрдб рдЦрд░рд╛рдм рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
- GameObject, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИ, рдпрджрд┐ рдЖрдк рдХрд▓реНрдкрдирд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ "рд╕реЗрд╡рд╛ рд▓реЛрдХреЗрдЯрд░" рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ ... рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк OOD рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдЖрд▓реЛрдЪрдирд╛ рд╕реЗ рдЖрдЧреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЯреЗрдореНрдкрд▓реЗрдЯ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рдВрдмрдВрдз рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рдмрд┐рдирд╛ рдЬреЛ рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдореБрдЭреЗ рдХрдВрдкреНрдпреВрдЯрд░ рд╡рд┐рдЬреНрдЮрд╛рди рдХреЗ рдЬреНрдЮрд╛рди рдХреЗ рд╕рд╛рде ) рдХрд┐ рд╕рдВрдЪрд╛рд░ рдЪреИрдирд▓ рдПрдХ рдПрдВрдЯреАрдкреИрдЯрд░реНрди рд╣реИрдВ , рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕реНрдкрд╖реНрдЯ рд╕рдВрдЪрд╛рд░ рдЪреИрдирд▓ рдкрд╕рдВрдж рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рд╣реА рддрд░реНрдХ рдлреВрд▓рд╛ рд╣реБрдЖ "рдШрдЯрдирд╛рдУрдВ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛" рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдХрднреА-рдХрднреА рдЦреЗрд▓реЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ...
- рдореИрдВ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдПрдХ рдШрдЯрдХ SRP рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ ( рд╡рд░реНрдЪреБрдЕрд▓ рд╢реВрдиреНрдп рдЕрдкрдбреЗрдЯ (рд╕рдордп) ) рдмрд╣реБрдд рдЪреМрдбрд╝рд╛ рд╣реИред рдЦреЗрд▓ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ "рдЖрднрд╛рд╕реА рд╢реВрдиреНрдп рдЕрджреНрдпрддрди" рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд░реНрд╡рд╡реНрдпрд╛рдкреА рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдпрд╣ рднреА рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдПрдВрдЯреАрдкреИрдЯрд░реНрди рд╣реИред рдЕрдЪреНрдЫрд╛ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЖрдкрдХреЛ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣ рдФрд░ рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕реЛрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред "рд╡рд░реНрдЪреБрдЕрд▓ рд╢реВрдиреНрдп рдЕрдкрдбреЗрдЯ" рдХреЙрд▓ рдХреЗ рдкреАрдЫреЗ рдЧреЗрдордкреНрд▓реЗ рдХреЛрдб рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХреЙрд▓ рдХрд░рдирд╛ рдФрд░ рдирд┐рдпрдВрддреНрд░рдг рд╕реНрдЯреНрд░реАрдо рдФрд░ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░реАрдо рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИред IMHO, рдЕрджреГрд╢реНрдп рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯреНрд╕ , рдЬрд┐рд╕реЗ рд▓реЙрдиреНрдЧ - рд░реЗрдВрдЬ рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ , рдмрдЧ рдХреЗ рдХреБрдЫ рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрд░реЛрдд рд╣реИрдВ, рдФрд░ "рдЖрднрд╛рд╕реА рд╢реВрдиреНрдп рдЕрдкрдбреЗрдЯ" рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд▓рдЧрднрдЧ рд╣рд░ рдЪреАрдЬ рдПрдХ рдЕрджреГрд╢реНрдп рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рд╣реЛрдЧреАред
- рд╣рд╛рд▓рд╛рдВрдХрд┐ рдШрдЯрдХ рд╡рд░реНрдЧ рдХрд╛ рд▓рдХреНрд╖реНрдп рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рд╣реИ, рдпрд╣ рдпрд╣ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рд╕реАрдЖрд░рдкреА рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рд╣реИред
- рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдЕрдЪреНрдЫрд╛ рдкрдХреНрд╖ рдпрд╣ рд╣реИ рдХрд┐ рдПрд╕рдЖрд░рдкреА рдФрд░ рдЖрдИрдПрд╕рдкреА рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреЗрдо рдХреЛрдб рдУрд╡рд░рдХрд┐рд▓ рд╣реИ - рдпрд╣ рдмрд╣реБрдд рдХрдо рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдХреЗ рд╕рд╛рде рдХрдИ рд╕рд░рд▓ рдШрдЯрдХреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИ, рдЬреЛ рдХреЛрдб рдХреЗ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдорд╣рд╛рди рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡рд╣ рдбреАрдЖрдИрдкреА рдмрдирд╛рдП рд░рдЦрдиреЗ рдореЗрдВ рдЗрддрдирд╛ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ - рдХрдИ рдШрдЯрдХреЛрдВ рдХреЛ рдПрдХ-рджреВрд╕рд░реЗ рдХрд╛ рдкреНрд░рддреНрдпрдХреНрд╖ рдЬреНрдЮрд╛рди рд╣реИред
рддреЛ, рдКрдкрд░ рджрд┐рдЦрд╛рдП рдЧрдП рд╕рднреА рдХреЛрдб рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдЯрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдкреВрд░реА рд╕рдВрд░рдЪрдирд╛ред GameObject рдХреЛ рдбрд┐рд▓реАрдЯ рдХрд░реЗрдВ (рдЕрдиреНрдп рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рдПрдВрдЯрд┐рдЯреА рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ), рдХрдВрдкреЛрдиреЗрдВрдЯ рдирд┐рдХрд╛рд▓реЗрдВ, рдлрд╛рдЗрдВрдбрдСрдлрдЯрд╛рдЗрдк рд╣рдЯрд╛рдПрдВред рдпрд╣ рдПрдХ рдмреЗрдХрд╛рд░ рд╡реАрдПрдо рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ рдЬреЛ OOD рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╣рдорд╛рд░реЗ рдЦреЗрд▓ рдХреЛ рдмрд╣реБрдд рдзреАрдорд╛ рдХрд░ рджреЗрддрд╛ рд╣реИред
рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдмрд┐рдирд╛ рд░рдЪрдирд╛ (рдпрд╛рдиреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ)
рдпрджрд┐ рд╣рдо рдХрдВрдкреЛрдЬрд╝рд┐рд╢рди рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛ рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдВрдкреЛрдиреЗрдВрдЯ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдорд╛рд░реЗ рдЧреЗрдордСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХрдВрдкреЛрдЬрд┐рд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рдШрдЯрдХреЛрдВ рд╕реЗ рдорд┐рд▓рдХрд░ рдХреИрд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВрдЧреЗ? рдЬреИрд╕рд╛ рдХрд┐ рд╢реАрд░реНрд╖рдХ рдХрд╣рддрд╛ рд╣реИ, рдЗрд╕ рдлреВрд▓рд╛ рд╣реБрдЖ рд╡реАрдПрдо рд▓рд┐рдЦрдиреЗ рдФрд░ рдЗрд╕рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рдЕрдЬреАрдм рдореЗрдЯрд▓рдВрдЧреЗрдЬ рдореЗрдВ рдЧреЗрдордСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдмрдирд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдЗрдП рд╣рдо рдЙрдиреНрд╣реЗрдВ рд╕реА ++ рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЧреЗрдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╣реИрдВ рдФрд░ рдпрд╣ рд╕рдЪрдореБрдЪ рд╣рдорд╛рд░рд╛ рдХрд╛рдо рд╣реИред
рдпрд╣рд╛рдВ рд╡рд╣ рдХрдореЗрдЯреА рд╣реИ рдЬрд┐рд╕рдиреЗ рдПрдВрдЯрд┐рдЯреА / рдХрдВрдкреЛрдиреЗрдВрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛ рд╣рдЯрд╛рдпрд╛:
https://github.com/hodgman/dod-playground/commit/f42290d0217d700dea2ed002f2f3b1dcbe8c27cрдпрд╣рд╛рдБ рд╕реНрд░реЛрдд рдХреЛрдб рдХрд╛ рдореВрд▓ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ:
https://github.com/hodgman/dod-playground/blob/3529f232510c95f53112bbfff87df6bbc6aa1fae-source/game.cppрдпрд╣рд╛рдБ рд╕реНрд░реЛрдд рдХреЛрдб рдХрд╛ рд╕рдВрд╢реЛрдзрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рд╣реИ:
https://github.com/hodgman/dod-playground/blob/f42290d0217d700dea2ed002f2f3b1dc45e8d27c/source/game.cppрдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ:
- рд╣рдЯрд╛рдпрд╛ рдЧрдпрд╛: рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдкреНрд░рдХрд╛рд░ рд╕реЗ "рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдШрдЯрдХ"ред
- рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░реНрдорд╛рддрд╛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред
- OOD рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдПрдХ рд╡рд░реНрдЧ рдХреЗ рд░рд╛рдЬреНрдп рдХреЛ рдШреЗрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдпреЗ рдХрдХреНрд╖рд╛рдПрдВ рдЗрддрдиреА рдЫреЛрдЯреА / рд╕рд░рд▓ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЫрд┐рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рдирд╣реАрдВ рд╣реИ: рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдбреЗрдЯрд╛ рдХрд╛ рд╡рд┐рд╡рд░рдг рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЦреНрдп рдХрд╛рд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдХрд┐ рдПрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдореБрдЦреНрдп рд╕реНрддрдВрдн рд╣реИ, рдпрд╣ рд╣рдореЗрдВ рд╡рд░реНрдЧ рдХреЗ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдпреЛрдВ рдХреА рдирд┐рд░рдВрддрд░ рд╕рдЪреНрдЪрд╛рдИ рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрддрд╛ рд╣реИ ... рдпрд╛ рдпрджрд┐ рдПрд░рд┐рдпрд░ рдЯреВрдЯ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рддреНрд░реБрдЯрд┐ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдиреНрдХреИрдкреНрд╕реБрд▓реЗрдЯреЗрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛрдб рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕ рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЕрдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ - рд╕рднреА рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЖрд░рдВрднреАрдХреГрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
- рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдирд╛рдо рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рдорд╛рдиреНрдп "рдЕрдкрдбреЗрдЯ" рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓ рджрд┐рдпрд╛, рдЬреЛ рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВ - MoveComponent рдХреЗ рд▓рд┐рдП UpdatePosition рдФрд░ AvoidComponent рдХреЗ рд▓рд┐рдП ResolveCollisionsред
- рдореИрдВрдиреЗ рдХреЛрдб рдХреЗ рддреАрди рд╣рд╛рд░реНрдб-рдХреЛрдб рдХрд┐рдП рдЧрдП рдмреНрд▓реЙрдХ рдирд┐рдХрд╛рд▓реЗ, рдЬреЛ рдПрдХ рдЯреЗрдореНрдкреНрд▓реЗрдЯ / рдкреНрд░реАрдлрд╝реИрдм рд╕реЗ рдорд┐рд▓рддрд╛-рдЬреБрд▓рддрд╛ рдерд╛ - рд╡рд╣ рдХреЛрдб рдЬреЛ рдЧреЗрдордСрдмрдЬреЗрдХреНрдЯ рдмрдирд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрдВрдкреЛрдиреЗрдВрдЯ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕реЗ рддреАрди C ++ рдХреНрд▓рд╛рд╕реЗрд╕ рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рд╣рдЯрд╛рдП рдЧрдП рдПрдВрдЯреАрдкреИрдЯрд░реНрди "рд╡рд░реНрдЪреБрдЕрд▓ рд╢реВрдиреНрдп рдЕрдкрдбреЗрдЯ"ред
- "рд╕реЗрд╡рд╛ рд▓реЛрдХреЗрдЯрд░" рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рджреВрд╕рд░реЗ рдХреА рддрд▓рд╛рд╢ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдШрдЯрдХреЛрдВ рдХреЗ рдмрдЬрд╛рдп, рдЦреЗрд▓ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рдЙрдиреНрд╣реЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрд╛рдВрдзрддрд╛ рд╣реИред
рд╡рд╕реНрддреБрдПрдВ
рдЗрд╕рд▓рд┐рдП, рдЗрд╕ "рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди" рдХреЛрдб рдХреЗ рдмрдЬрд╛рдп:
рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд┐рдпрдорд┐рдд C ++ рдХреЛрдб рд╣реИ:
struct RegularObject { PositionComponent pos; SpriteComponent sprite; MoveComponent move; AvoidComponent avoid; RegularObject(const WorldBoundsComponent& bounds) : move(0.5f, 0.7f)
рдПрд▓реНрдЧреЛрд░рд┐рджрдо
рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдореЗрдВ рдПрдХ рдФрд░ рдмрдбрд╝рд╛ рдмрджрд▓рд╛рд╡ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╛рдж рд░рдЦреЗрдВ, рд╢реБрд░реБрдЖрдд рдореЗрдВ рдореИрдВрдиреЗ рдХрд╣рд╛ рдерд╛ рдХрд┐ рдЗрдВрдЯрд░рдлреЗрд╕ рдФрд░ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╕рд╣рдЬреАрд╡рди рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдПрдХ рджреВрд╕рд░реЗ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рддреЛ, рдПрдВрдЯреАрдкреИрдЯрд░реНрди "
рдЖрднрд╛рд╕реА рд╢реВрдиреНрдп рдЕрдкрдбреЗрдЯ " рдпрд╣рд╛рдВ рднреА рджреБрд╢реНрдорди рдмрди рдЧрдпрд╛ рд╣реИред рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХреЛрдб рдореЗрдВ рдореБрдЦреНрдп рд▓реВрдк рдЕрд▓реНрдЧреЛрд░рд┐рджреНрдо рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ рдпрд╣реА рд╢рд╛рдорд┐рд▓ рд╣реИ:
рдЖрдк рддрд░реНрдХ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕реБрдВрджрд░ рдФрд░ рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди IMHO рдпрд╣ рдмрд╣реБрдд, рдмрд╣реБрдд рдмреБрд░рд╛ рд╣реИред рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ
рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣ рдФрд░ рдЦреЗрд▓ рдХреЗ рднреАрддрд░
рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣ рджреЛрдиреЛрдВ рдХреЛ рдмрд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рд╣рдо рдЕрдкрдиреЗ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЕрдЧрд░ рд╣рдо рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЕрдЧрд░ рд╣рдо рдЗрд╕рдореЗрдВ рдирдИ рдЪреАрдЬрд╝реЗрдВ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдХрдИ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ рдкрд░ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣ рдФрд░ рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣ рджреЛрдиреЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, "рдЖрднрд╛рд╕реА рд╢реВрдиреНрдп рдЕрджреНрдпрддрди" рдХреЛ рдЖрдЧ рдкрд░ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╣рдордиреЗ рдПрдХ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рдореБрдЦреНрдп рд▓реВрдк рдмрдирд╛рдпрд╛, рдЬреЛ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣ рдХреА рд╕рдордЭ рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИ (рдЗрд╕рдореЗрдВ
рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣ рдЕрднреА рднреА рдмрд╛рдзрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд┐рдпреЛрдВ рдореЗрдВ рдареАрдХ рдХрд░ рджреЗрдВрдЧреЗ )ред
рдЗрд╕ рд╢реИрд▓реА рдХрд╛ рдиреБрдХрд╕рд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдЦреЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП
рдкреНрд░рддреНрдпреЗрдХ рдирдП рдкреНрд░рдХрд╛рд░ рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдореБрдЦреНрдп рд▓реВрдк рдореЗрдВ рдХрдИ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рдореИрдВ рдЗрд╕ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕реЗ рдмрд╛рдж рдХреА рдкреЛрд╕реНрдЯ рдореЗрдВ рдЗрд╕ рдкрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯреВрдВрдЧрд╛ред
рдЙрддреНрдкрд╛рджрдХрддрд╛
рдХрдИ рд╡рд┐рд╢рд╛рд▓ OOD рдЙрд▓реНрд▓рдВрдШрди рд╣реИрдВ, рдПрдХ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╕рдордп рдХреБрдЫ рдмреБрд░реЗ рдирд┐рд░реНрдгрдп рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдХрдИ рдЕрд╡рд╕рд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЙрдиреНрд╣реЗрдВ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдЕрдЧрд▓реЗ рдкреЛрд╕реНрдЯ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реВрдВрдЧрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рд╕реНрддрд░ рдкрд░ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ "рд╕рд╣реА OOD" рд╡рд╛рд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг рд▓рдЧрднрдЧ рдореИрдЪ рдпрд╛ рдЕрдВрддрд┐рдо "ECS" рдХреЛрдб рдХреЛ рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЗ рдЕрдВрдд рд╕реЗ рдЬреАрддрддрд╛ рд╣реИ ... рдФрд░ рд╣рдордиреЗ рдХреЗрд╡рд▓ рдЦрд░рд╛рдм рдЫрджреНрдо-OOP рдХреЛрдб рд▓рд┐рдпрд╛ рдФрд░ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ред OOP (рдФрд░ рдХреЛрдб рдХреА рд╕реМ рд▓рд╛рдЗрдиреЗрдВ рднреА рд╣рдЯрд╛ рджреА рдЧрдИрдВ)!

рдЕрдЧрд▓реЗ рдЪрд░рдг
рдпрд╣рд╛рдБ рдореИрдВ рдореБрджреНрджреЛрдВ рдХреА рдПрдХ рдЕрдзрд┐рдХ рд╡реНрдпрд╛рдкрдХ рд╢реНрд░реЗрдгреА рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЬрд┐рд╕рдореЗрдВ рд╢реЗрд╖ OOD рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдирд╛, рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╡рд╕реНрддреБрдУрдВ (
рдПрдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╢реИрд▓реА рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ ) рдФрд░ рд╡реЗ рдлрд╛рдпрджреЗ рдЬреЛ рд╡реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣, рд╕рдВрджреЗрд╢ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ, рд╣рдорд╛рд░реЗ OOD рдХреЛрдб рдореЗрдВ DOD рддрд░реНрдХ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред OOD рдХреЛрдб рдореЗрдВ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдЬреНрдЮрд╛рди рд▓рд╛рдЧреВ рдХрд░рдирд╛, "рд╕рдВрд╕реНрдерд╛рдУрдВ" рдХреЗ рдЗрди рд╡рд░реНрдЧреЛрдВ рдХреЛ рд╣рдЯрд╛рдирд╛ рдЬреЛ рд╣рдордиреЗ рд╕рдорд╛рдкреНрдд рдХрд┐рдП, рдФрд░ рдХреЗрд╡рд▓ рд╢реБрджреНрдз рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдШрдЯрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рд╢реИрд▓рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ (рдмрд┐рдВрджреБрдУрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реБрдП) рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рд╕реЗ рд▓реЗ рдЬрд╛рдиреЗ рдХреЗ) рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рдШрдЯрдХреЛрдВ рдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░реА, рдИрд╕реАрдПрд╕-рд╕рдВрд╢реЛрдзрди рд╕рдВрд╕реНрдХрд░рдг рдмреЗрд╣рддрд░ рдЕрдиреБрдХреВрд▓рди, рд╕рд╛рде рд╣реА рдЖрдЧреЗ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП, рд░рд┐рдкреЛрд░реНрдЯ Aras
(рдЬреИрд╕реЗ рдмрд╣реБ рд╕реВрддреНрд░рдг / SIMD) рдХреЗ рд░реВрдк рдореЗрдВ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ
рдХрд┐рдпрд╛ред рдЖрджреЗрд╢ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдпрд╣ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдФрд░ рд╢рд╛рдпрдж рдореИрдВ рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ ...
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛
рд▓реЗрдЦ рдХреЗ рд▓рд┐рдВрдХ рдЧреЗрдо рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рдлреИрд▓ рдЧрдП рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ
рдЬреЛрдбрд╝реВрдВрдЧрд╛ : "
рдИрд╕реАрдПрд╕ " (
рдпрд╣ рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рд▓реЗрдЦ рдЦрд░рд╛рдм рд╣реИ, рдпрд╣ рдИрд╕реА рдФрд░ рдИрд╕реАрдПрд╕ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИ ... ) - рдпрд╣ рд╕рдореБрджрд╛рдпреЛрдВ рдХреЗ рднреАрддрд░ рдШреВрдордиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдирдХрд▓реА рдЯреЗрдореНрдкрд▓реЗрдЯ рд╣реИ рдЦреЗрд▓ рдбреЗрд╡рд▓рдкрд░реНрд╕ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд░рд┐рд▓реЗрд╢рдирд▓ рдореЙрдбрд▓ рдХрд╛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ рдЬрд┐рд╕рдореЗрдВ "рдЗрдХрд╛рдЗрдпрд╛рдВ" рд╕рд┐рд░реНрдл рдЖрдИрдбреА рд╣реИрдВ рдЬреЛ рдПрдХ рдЖрдХрд╛рд░рд╣реАрди рд╡рд╕реНрддреБ рдХреЛ рдирд╛рдорд┐рдд рдХрд░рддреА рд╣реИрдВ, "рдШрдЯрдХ" рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рдкрдВрдХреНрддрд┐рдпрд╛рдВ рд╣реИрдВ рдЬреЛ рд╕рдВрджрд░реНрдн рдЖрдИрдбреА, рдФрд░ "рд╕рд┐рд╕реНрдЯрдо" рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдХреЛрдб рд╣реИрдВ рдЬреЛ рдШрдЯрдХреЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред рдпрд╣ "рдЯреЗрдореНрдкрд▓реЗрдЯ" рд╣рдореЗрд╢рд╛ рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╡рд┐рд░рд╛рд╕рдд рдХрд╛ рдЕрддреНрдпрдзрд┐рдХ рдЖрд╡реЗрджрди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ OOP рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореЗрд░рд╛ рдЖрдХреНрд░реЛрд╢ рдпрд╣ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП "рдХреЗрд╡рд▓ рд╕рд╣реА рддрд░реАрдХрд╛" рдирд╣реАрдВ рд╣реИред рдкреЛрд╕реНрдЯ рдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд▓реЛрдЧ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореМрдЬреВрджрд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦреЗрдВред