10 рд╡рд╕реНрддреБ-рдЙрдиреНрдореБрдЦ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рд╕рд┐рджреНрдзрд╛рдиреНрддрд╣рд░реВ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓рд╛рдИ рдерд╛рд╣рд╛ рд╣реБрдиреБрдкрд░реНрдЫ

10 рд╡рд╕реНрддреБ-рдЙрдиреНрдореБрдЦ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рд╕рд┐рджреНрдзрд╛рдиреНрддрд╣рд░реВ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓рд╛рдИ рдерд╛рд╣рд╛ рд╣реБрдиреБрдкрд░реНрдЫ

рдкреНрд░рд╛рдпрдГ рдо рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ рднреЗрдЯреНрдЫреБ рдЬрд╕рд▓реЗ SOLID рд╕рд┐рджреНрдзрд╛рдиреНрддрд╣рд░реВ (рд╣рд╛рдореА рддрд┐рдиреАрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдпрд╣рд╛рдБ рд╡рд┐рд╕реНрддреГрдд рд░реВрдкрдорд╛ рдХреБрд░рд╛ рдЧрд░реЗред тАФ Transl.) рд╡рд╛ рд╡рд╕реНрддреБ-рдЙрдиреНрдореБрдЦ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ (OOP), рд╡рд╛ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рд╕реБрдиреЗрдХреЛ рдЫ, рддрд░ рд╡реНрдпрд╡рд╣рд╛рд░рдорд╛ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдкреНрд░рдпреЛрдЧ рдирдЧрд░реНрдиреБрд╣реЛрд╕реНред рдпрд╕ рд▓реЗрдЦрд▓реЗ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓рд╛рдИ рдЙрд╕рдХреЛ рджреИрдирд┐рдХ рдХрд╛рд░реНрдпрдорд╛ рдорджреНрджрдд рдЧрд░реНрдиреЗ OOP рд╕рд┐рджреНрдзрд╛рдиреНрддрд╣рд░реВрдХреЛ рдлрд╛рдЗрджрд╛рд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░реНрджрдЫред рддрд┐рдиреАрд╣рд░реВрдордзреНрдпреЗ рдХреЗрд╣реА рд░рд╛рдореНрд░рд░реА рдЪрд┐рдирд┐рдиреНрдЫрдиреН, рдЕрд░реВрд╣рд░реВ рддреНрдпрддрд┐ рдзреЗрд░реИ рдЫреИрдирдиреН, рддреНрдпрд╕реИрд▓реЗ рд▓реЗрдЦ рджреБрд╡реИ рд╢реБрд░реБрдЖрддреА рд░ рдЕрдиреБрднрд╡реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреЛрдЧреА рд╣реБрдиреЗрдЫред

рд╣рд╛рдореА рд╕рдореНрдЭрд╛рдЙрдБрдЫреМрдВ: рд╕рдмреИ Habr рдкрд╛рдардХрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ - Habr рдкреНрд░реЛрдореЛ рдХреЛрдб рдкреНрд░рдпреЛрдЧ рдЧрд░реА рдХреБрдиреИ рдкрдирд┐ рд╕реНрдХрд┐рд▓рдмрдХреНрд╕ рдкрд╛рдареНрдпрдХреНрд░рдордорд╛ рднрд░реНрдирд╛ рдЧрд░реНрджрд╛ резреж,режрежреж рд░реВрдмрд▓ рдЫреБрдЯред

Skillbox рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░реНрджрдЫ: рд╢реИрдХреНрд╖рд┐рдХ рдЕрдирд▓рд╛рдЗрди рдкрд╛рдареНрдпрдХреНрд░рдо "рдЬрд╛рднрд╛ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛".

DRY (рдЖрдлреВрд▓рд╛рдИ рдирджреЛрд╣реЛрд░реНрдпрд╛рдЙрдиреБрд╣реЛрд╕реН)

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

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

рдХреЛрдбрд▓рд╛рдИ рд╕рд░рд▓ рдмрдирд╛рдЙрди рд░ рдпрд╕рд▓рд╛рдИ рдХрд╛рдпрдо рд░рд╛рдЦреНрди рд╕рдЬрд┐рд▓реЛ рдмрдирд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рдпреЛ рдЖрд╡рд╢реНрдпрдХ рдЫ, рдЬреБрди OOP рдХреЛ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рд╣реЛред рддрдкрд╛рдИрдВрд▓реЗ рдпреБрдирд┐рдпрдирдХреЛ рдЕрддрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБ рд╣реБрдБрджреИрди, рдХрд┐рдирдХрд┐ рдПрдЙрдЯреИ рдХреЛрдбрд▓реЗ OrderId рд░ SSN рджреБрд╡реИрд╕рдБрдЧ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкрд╛рд╕ рдЧрд░реНрджреИрдиред

рдЗрдиреНрдХреНрдпрд╛рдкреНрд╕реБрд▓реЗрдЯрд┐рдЩ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ

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

рдпрджрд┐ рддрдкрд╛рдЗрдБ Java рдорд╛ рд▓реЗрдЦреНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рдирд┐рдЬреА рд╡рд┐рдзрд┐рд╣рд░реВ рд░ рдЪрд░рд╣рд░реВ рдЕрд╕рд╛рдЗрди рдЧрд░реНрдиреБрд╣реЛрд╕реН.

рдЦреБрд▓рд╛ / рдмрдиреНрдж рд╕рд┐рджреНрдзрд╛рдиреНрдд

рдпреЛ рд╕рд┐рджреНрдзрд╛рдиреНрдд рдирд┐рдореНрди рдХрдерди рдкрдвреЗрд░ рд╕рдЬрд┐рд▓реИ рд╕рдореНрдЭрди рд╕рдХрд┐рдиреНрдЫ: "рд╕рдлреНрдЯрд╡реЗрдпрд░ рд╕рдВрд╕реНрдерд╛рд╣рд░реВ (рд╡рд░реНрдЧрд╣рд░реВ, рдореЛрдбреНрдпреБрд▓рд╣рд░реВ, рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ, рдЖрджрд┐) рд╡рд┐рд╕реНрддрд╛рд░рдХреЛ рд▓рд╛рдЧрд┐ рдЦреБрд▓рд╛ рд╣реБрдиреБрдкрд░реНрдЫ, рддрд░ рдкрд░рд┐рдорд╛рд░реНрдЬрдирдХреЛ рд▓рд╛рдЧрд┐ рдмрдиреНрдж рд╣реБрдиреБрдкрд░реНрдЫред" рдЕрднреНрдпрд╛рд╕рдорд╛, рдпрд╕рдХреЛ рдорддрд▓рдм рдпреЛ рд╣реЛ рдХрд┐ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рд╕реНрд░реЛрдд рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрди рдирдЧрд░реА рдЖрдлреНрдиреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рди рд╕рдХреНрдЫрдиреНред

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

рдпрд╣рд╛рдБ рдпреЛ рд╕рд┐рджреНрдзрд╛рдиреНрдд рдЙрд▓реНрд▓рдЩреНрдШрди рдЧрд░реНрдиреЗ рдХреЛрдбрдХреЛ рдЙрджрд╛рд╣рд░рдг рд╣реЛред

10 рд╡рд╕реНрддреБ-рдЙрдиреНрдореБрдЦ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рд╕рд┐рджреНрдзрд╛рдиреНрддрд╣рд░реВ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓рд╛рдИ рдерд╛рд╣рд╛ рд╣реБрдиреБрдкрд░реНрдЫ

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

рд╡реИрд╕реЗ, рдЦреБрд▓рд╛рдкрди-рдмрдиреНрджрддрд╛ SOLID рдХреЛ рд╕рд┐рджреНрдзрд╛рдиреНрддрд╣рд░реВ рдордзреНрдпреЗ рдПрдХ рд╣реЛред

рдПрдХрд▓ рдЙрддреНрддрд░рджрд╛рдпрд┐рддреНрд╡ рд╕рд┐рджреНрдзрд╛рдиреНрдд (SRP)

SOLID рд╕реЗрдЯрдмрд╛рдЯ рдЕрд░реНрдХреЛ рд╕рд┐рджреНрдзрд╛рдиреНрддред рдпрд╕рд▓реЗ рднрдиреНрдЫ рдХрд┐ "рддреНрдпрд╣рд╛рдБ рдПрдЙрдЯрд╛ рдорд╛рддреНрд░ рдХрд╛рд░рдг рдЫ рдЬрд╕рд▓реЗ рд╡рд░реНрдЧрдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рдирд┐рдореНрддреНрдпрд╛рдЙрдБрдЫред" рдХрдХреНрд╖рд╛рд▓реЗ рдПрдЙрдЯрд╛ рдорд╛рддреНрд░ рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдЫред рдпреЛ рдзреЗрд░реИ рд╡рд┐рдзрд┐рд╣рд░реВ рд╣реБрди рд╕рдХреНрдЫ, рддрд░ рддрд┐рдиреАрд╣рд░реВрдордзреНрдпреЗ рдкреНрд░рддреНрдпреЗрдХ рдорд╛рддреНрд░ рдПрдХ рд╕рд╛рдЭрд╛ рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рд╕рдмреИ рд╡рд┐рдзрд┐ рд░ рдЧреБрдгрд╣рд░реВрд▓реЗ рдорд╛рддреНрд░ рдпреЛ рд╕реЗрд╡рд╛ рдЧрд░реНрдиреБрдкрд░реНрдЫред

10 рд╡рд╕реНрддреБ-рдЙрдиреНрдореБрдЦ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рд╕рд┐рджреНрдзрд╛рдиреНрддрд╣рд░реВ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓рд╛рдИ рдерд╛рд╣рд╛ рд╣реБрдиреБрдкрд░реНрдЫ

рдпрд╕ рд╕рд┐рджреНрдзрд╛рдиреНрддрдХреЛ рдореВрд▓реНрдп рдпреЛ рд╣реЛ рдХрд┐ рдпрд╕рд▓реЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдлреНрдЯрд╡реЗрдпрд░ рдХрдореНрдкреЛрдиреЗрдиреНрдЯ рд░ рдХреЛрдб рдмреАрдЪрдХреЛ рдпреБрдЧреНрдордирд▓рд╛рдИ рдХрдо рдЧрд░реНрдЫред рдпрджрд┐ рддрдкрд╛рдЗрдБ рдПрдХ рдХрдХреНрд╖рд╛рдорд╛ рдПрдХ рднрдиреНрджрд╛ рдмрдвреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдердкреНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рдпрд╕рд▓реЗ рджреБрдИ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдмреАрдЪрдХреЛ рд╕рдореНрдмрдиреНрдзрдХреЛ рдкрд░рд┐рдЪрдп рджрд┐рдиреНрдЫред рддрд╕рд░реНрде, рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рддреА рдордзреНрдпреЗ рдПрдЙрдЯрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреБрднрдпреЛ рднрдиреЗ, рджреЛрд╕реНрд░реЛрд▓рд╛рдИ рдмрд░реНрдмрд╛рдж рдЧрд░реНрдиреЗ рдЙрдЪреНрдЪ рд╕рдореНрднрд╛рд╡рдирд╛ рдЫ, рдЬреБрди рдкрд╣рд┐рд▓реЛрд╕рдБрдЧ рдЬреЛрдбрд┐рдПрдХреЛ рдЫред рд░ рдпрд╕рдХреЛ рдЕрд░реНрде рд╕рдмреИ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдкрд╣рд┐рд▓реНрдпреИ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрди рдкрд░реАрдХреНрд╖рдг рдЪрдХреНрд░ рдмрдврд╛рдЙрдиреБ рд╣реЛред

рдирд┐рд░реНрднрд░рддрд╛ рдЙрд▓реНрдЯреЛ рд╕рд┐рджреНрдзрд╛рдиреНрдд (DIP)

10 рд╡рд╕реНрддреБ-рдЙрдиреНрдореБрдЦ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рд╕рд┐рджреНрдзрд╛рдиреНрддрд╣рд░реВ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓рд╛рдИ рдерд╛рд╣рд╛ рд╣реБрдиреБрдкрд░реНрдЫ

рдорд╛рдерд┐ рдПрдЙрдЯрд╛ рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рд╣реЛ рдЬрд╣рд╛рдБ AppManager EventLogWriter рдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджрдЫ, рдЬреБрди рдмрд╛рд░реАрдорд╛ AppManager рд╕рдБрдЧ рдЬреЛрдбрд┐рдПрдХреЛ рдЫред рдпрджрд┐ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╕реВрдЪрдирд╛ рджреЗрдЦрд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рдлрд░рдХ рддрд░рд┐рдХрд╛ рдЪрд╛рд╣рд┐рдиреНрдЫ рднрдиреЗ, рдпреЛ рдкреБрд╢, SMS рд╡рд╛ рдЗрдореЗрд▓ рд╣реЛрд╕реН, рддрдкрд╛рдИрдВрд▓реЗ AppManager рдХрдХреНрд╖рд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред

DIP рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рддреНрдпрд╕реИрд▓реЗ, AppManager рдХреЛ рд╕рдЯреНрдЯрд╛, рд╣рд╛рдореА рдПрдХ EventLogWriter рдЕрдиреБрд░реЛрдз рдЧрд░реНрдЫреМрдВ, рдЬреБрди рдлреНрд░реЗрдорд╡рд░реНрдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░рд┐рдиреЗрдЫред

DIP рд▓реЗ рдирд┐рд░реНрднрд░рддрд╛ рдореЛрдбреНрдпреБрд▓ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реЗрд░ рд╕рдЬрд┐рд▓реИрд╕рдБрдЧ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдореЛрдбреНрдпреБрд▓рд╣рд░реВ рдЕрд░реВрд╕рдБрдЧ рдмрджрд▓реНрди рд╕рдореНрднрд╡ рдмрдирд╛рдЙрдБрдЫред рдпрд╕рд▓реЗ рдЕрд░реВрд▓рд╛рдИ рдЕрд╕рд░ рдирдЧрд░реА рдПрдЙрдЯрд╛ рдореЛрдбреНрдпреБрд▓ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рд╕рдореНрднрд╡ рдмрдирд╛рдЙрдБрдЫред

рд╡рд┐рд░рд╛рд╕рддрдХреЛ рд╕рдЯреНрдЯрд╛ рд░рдЪрдирд╛

10 рд╡рд╕реНрддреБ-рдЙрдиреНрдореБрдЦ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рд╕рд┐рджреНрдзрд╛рдиреНрддрд╣рд░реВ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓рд╛рдИ рдерд╛рд╣рд╛ рд╣реБрдиреБрдкрд░реНрдЫрдХреЛрдб рдкреБрди: рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рджреБрдИ рдореБрдЦреНрдп рддрд░рд┐рдХрд╛рд╣рд░реВ рдЫрдиреН: рд╡рд┐рд░рд╛рд╕рдд рд░ рд╕рдВрд░рдЪрдирд╛, рдЬрд╕рдХрд╛ рджреБрд╡реИрдХрд╛ рдЖрдлреНрдиреИ рдлрд╛рдЗрджрд╛ рд░ рдмреЗрдлрд╛рдЗрджрд╛рд╣рд░реВ рдЫрдиреНред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рджреЛрд╕реНрд░реЛ рд░реБрдЪрд╛рдЗрдиреНрдЫ рдХрд┐рдирднрдиреЗ рдпреЛ рдЕрдзрд┐рдХ рд▓рдЪрд┐рд▓реЛ рдЫред

рдХрдореНрдкреЛрдЬрд┐рд╕рдирд▓реЗ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдХрдХреНрд╖рд╛рдХреЛ рдЧреБрдгрд╣рд░реВ рд╕реЗрдЯ рдЧрд░реЗрд░ рд░рдирдЯрд╛рдЗрдордорд╛ рдпрд╕рдХреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рджрд┐рдиреНрдЫред рдЗрдиреНрдЯрд░рдлреЗрд╕рд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░реНрджрд╛, рдмрд╣реБрд░реВрдкрддрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ, рдЬрд╕рд▓реЗ рдердк рд▓рдЪрд┐рд▓реЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рджрд┐рдиреНрдЫред

рдЬреЛрд╢реБрдЖ рдмреНрд▓реЛрдЪ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рдЬрд╛рднрд╛рд▓реЗ рдкрдирд┐ рд╡рд┐рд░рд╛рд╕рддрдорд╛ рд░рдЪрдирд╛ рдЫрдиреМрдЯ рдЧрд░реНрди рд╕рд▓реНрд▓рд╛рд╣ рджрд┐рдиреНрдЫред

рдмрд╛рд░рдмрд░рд╛ рд▓рд┐рд╕реНрдХреЛрдн рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╕рд┐рджреНрдзрд╛рдиреНрдд (LSP)

SOLID рдЯреВрд▓рдХрд┐рдЯрдмрд╛рдЯ рдЕрд░реНрдХреЛ рд╕рд┐рджреНрдзрд╛рдиреНрддред рдпрд╕рд▓реЗ рдмрддрд╛рдЙрдБрдЫ рдХрд┐ рдЙрдкрдкреНрд░рдХрд╛рд░рд╣рд░реВ рд╕реБрдкрд░рдЯрд╛рдЗрдкрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдпреЛрдЧреНрдп рд╣реБрдиреБрдкрд░реНрдЫред рдЕрд░реНрдерд╛рддреН, рд╕реБрдкрд░рдХреНрд▓рд╛рд╕рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреЗ рд╡рд┐рдзрд┐ рд░ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрд▓реЗ рдпрд╕рдХреЛ рдЙрдкрд╡рд░реНрдЧрд╣рд░реВрд╕рдБрдЧ рд╕рдорд╕реНрдпрд╛ рдмрд┐рдирд╛ рдХрд╛рдо рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреБрдкрд░реНрдЫред

LSP рдПрдХрд▓ рдЬрд┐рдореНрдореЗрд╡рд╛рд░реА рд╕рд┐рджреНрдзрд╛рдиреНрдд рд░ рд╕рд╛рдЭрд╛ рдЬрд┐рдореНрдореЗрд╡рд╛рд░реА рд╕рд┐рджреНрдзрд╛рдиреНрдд рджреБрд╡реИ рд╕рдВрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдЫред рдпрджрд┐ рдХреБрдиреИ рд╡рд░реНрдЧрд▓реЗ рдЙрдкрд╡рд░реНрдЧ рднрдиреНрджрд╛ рдмрдвреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ рднрдиреЗ, рдкрдЫрд┐рд▓реНрд▓рд╛рд▓реЗ рдпрд╕ рд╕рд┐рджреНрдзрд╛рдиреНрддрд▓рд╛рдИ рдЙрд▓реНрд▓рдЩреНрдШрди рдЧрд░реНрджреИ рдХреЗрд╣реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджреИрдиред

рдпрд╣рд╛рдБ рдХреЛрдбрдХреЛ рдПрдХ рдЯреБрдХреНрд░рд╛ рдЫ рдЬреБрди LSP рдХреЛ рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕ рдЧрд░реНрджрдЫред

10 рд╡рд╕реНрддреБ-рдЙрдиреНрдореБрдЦ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рд╕рд┐рджреНрдзрд╛рдиреНрддрд╣рд░реВ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓рд╛рдИ рдерд╛рд╣рд╛ рд╣реБрдиреБрдкрд░реНрдЫ

рдХреНрд╖реЗрддреНрд░ (рдЖрдпрдд r) рд╡рд┐рдзрд┐рд▓реЗ рдЖрдпрддрдХреЛ рдХреНрд╖реЗрддреНрд░рдлрд▓ рдЧрдгрдирд╛ рдЧрд░реНрджрдЫред рд╕реНрдХреНрд╡рд╛рдпрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реЗрдкрдЫрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреНрд░реНрдпрд╛рд╕ рд╣реБрдиреЗрдЫ рдХрд┐рдирднрдиреЗ рд╕реНрдХреНрд╡рд╛рдпрд░ рдпрд╣рд╛рдБ рдЖрдпрдд рд╣реЛрдЗрдиред LSP рд╕рд┐рджреНрдзрд╛рдиреНрдд рдЕрдиреБрд╕рд╛рд░, рдЖрдзрд╛рд░ рд╡рд░реНрдЧрдХрд╛ рд╕рдиреНрджрд░реНрднрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдХрд╛рд░реНрдпрд╣рд░реВрд▓реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдмрд┐рдирд╛ рд╡реНрдпреБрддреНрдкрдиреНрди рд╡рд░реНрдЧрд╣рд░реВрдХреЛ рд╡рд╕реНрддреБрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреБрдкрд░реНрдЫред

рдпреЛ рд╕рд┐рджреНрдзрд╛рдиреНрдд, рдЬреЛ рдПрдХ рдЙрдкрдкреНрд░рдХрд╛рд░ рдХреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реЛ, рдмрд╛рд░рдмрд░рд╛ рд▓рд┐рд╕реНрдХреЛрдн рджреНрд╡рд╛рд░рд╛ 1987 рд╕рдореНрдореЗрд▓рди рдХреАрдиреЛрдЯ рдорд╛ "рдбреЗрдЯрд╛ рдЕрдореВрд░реНрддрддрд╛ рд░ рдкрджрд╛рдиреБрдХреНрд░рдо" рд╢реАрд░реНрд╖рдХрдХреЛ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, рддреНрдпрд╕реИрд▓реЗ рдпрд╕рдХреЛ рдирд╛рдоред

рдЗрдиреНрдЯрд░рдлреЗрд╕ рд╡рд┐рднрд╛рдЬрди рд╕рд┐рджреНрдзрд╛рдиреНрдд (ISP)

рдЕрд░реНрдХреЛ рдареЛрд╕ рд╕рд┐рджреНрдзрд╛рдиреНрддред рдпрд╕рдХрд╛ рдЕрдиреБрд╕рд╛рд░ рдкреНрд░рдпреЛрдЧ рдирдЧрд░рд┐рдПрдХреЛ рдЗрдиреНрдЯрд░рдлреЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреБ рд╣реБрдБрджреИрди ред рдпрд╕ рд╕рд┐рджреНрдзрд╛рдиреНрддрдХреЛ рдкрд╛рд▓рдирд╛рд▓реЗ рдЕрдкрд░реЗрдЯрд┐рдЩ рддрд░реНрдХрдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдЧрд░реНрджрд╛ рдкреНрд░рдгрд╛рд▓реАрд▓рд╛рдИ рд▓рдЪрд┐рд▓реЛ рд░ рд░рд┐рдлреНрдпрд╛рдХреНрдЯрд░рд┐рдЩрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреБрдХреНрдд рд░рд╣рди рдорджреНрджрдд рдЧрд░реНрджрдЫред

рдкреНрд░рд╛рдпрдГ, рдпреЛ рдЕрд╡рд╕реНрдерд╛ рддрдм рд╣реБрдиреНрдЫ рдЬрдм рдЗрдиреНрдЯрд░рдлреЗрд╕рд▓реЗ рдПрдХреИрдЪреЛрдЯрд┐ рдзреЗрд░реИ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ, рд░ рдЧреНрд░рд╛рд╣рдХрд▓рд╛рдИ рддреА рдордзреНрдпреЗ рдПрдЙрдЯрд╛ рдорд╛рддреНрд░ рдЪрд╛рд╣рд┐рдиреНрдЫред

рдПрдХ рдЗрдиреНрдЯрд░рдлреЗрд╕ рд▓реЗрдЦреНрди рдЧрд╛рд╣реНрд░реЛ рдХрд╛рдо рднрдПрдХреЛрд▓реЗ, рдХрд╛рдо рдкреВрд░рд╛ рднрдПрдкрдЫрд┐ рдпрд╕рд▓рд╛рдИ рдХреБрдиреИ рдкрдирд┐ рддреЛрдбрдлреЛрдб рдирдЧрд░реА рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдЪреБрдиреМрддреА рд╣реБрдиреЗрдЫред

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

10 рд╡рд╕реНрддреБ-рдЙрдиреНрдореБрдЦ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рд╕рд┐рджреНрдзрд╛рдиреНрддрд╣рд░реВ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓рд╛рдИ рдерд╛рд╣рд╛ рд╣реБрдиреБрдкрд░реНрдЫ

рдЗрдиреНрдЯрд░рдлреЗрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реЛрдЗрди

рдпрд╣рд╛рдБ рдирд╛рдордмрд╛рдЯ рд╕рдмреИ рдХреБрд░рд╛ рд╕реНрдкрд╖реНрдЯ рдЫред рдпреЛ рд╕рд┐рджреНрдзрд╛рдиреНрдд рд▓рд╛рдЧреВ рдЧрд░реНрдирд╛рд▓реЗ рд▓рдЪрд┐рд▓реЛ рдХреЛрдбрдХреЛ рд╕реГрдЬрдирд╛ рд╣реБрдиреНрдЫ рдЬреБрди рдЗрдиреНрдЯрд░рдлреЗрд╕рдХреЛ рдХреБрдиреИ рдкрдирд┐ рдирдпрд╛рдБ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рд╕рдХреНрдЫред

рддрдкрд╛рдИрдВрд▓реЗ рдЪрд░, рдлрд┐рд░реНрддрд╛ рдкреНрд░рдХрд╛рд░рд╣рд░реВ, рд╡рд╛ рд╡рд┐рдзрд┐ рддрд░реНрдХ рдкреНрд░рдХрд╛рд░рдХреЛ рд▓рд╛рдЧрд┐ рдЗрдиреНрдЯрд░рдлреЗрд╕ рдкреНрд░рдХрд╛рд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрдкрд░реНрдЫред рдПрдЙрдЯрд╛ рдЙрджрд╛рд╣рд░рдг SubClass рдХреЛ рд╕рдЯреНрдЯрд╛ SuperClass рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИрдЫред

рддреНрдпреЛ рд╣реЛ:

рд╕реВрдЪреА рдирдореНрдмрд░рд╣рд░реВ = getNumbers();

рддрд░ рд╣реЛрдЗрди:

рдПрд░реЗрд▓рд┐рд╕реНрдЯ рдирдореНрдмрд░рд╣рд░реВ = getNumbers();

рдпрд╣рд╛рдБ рдорд╛рдерд┐ рдЫрд▓рдлрд▓ рдЧрд░рд┐рдПрдХреЛ рдХреБрд░рд╛рдХреЛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реЛред

10 рд╡рд╕реНрддреБ-рдЙрдиреНрдореБрдЦ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рд╕рд┐рджреНрдзрд╛рдиреНрддрд╣рд░реВ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓рд╛рдИ рдерд╛рд╣рд╛ рд╣реБрдиреБрдкрд░реНрдЫ

рдкреНрд░рддрд┐рдирд┐рдзрд┐рдордгреНрдбрд▓рдХреЛ рд╕рд┐рджреНрдзрд╛рдиреНрдд

рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЙрджрд╛рд╣рд░рдг рдЬрд╛рднрд╛ рдорд╛ equals() рд░ hashCode() рд╡рд┐рдзрд┐ рд╣реЛред рдЬрдм рджреБрдИ рд╡рд╕реНрддреБрд╣рд░реВ рддреБрд▓рдирд╛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреНрдЫ, рдпреЛ рдХрд╛рд░реНрдп рдЧреНрд░рд╛рд╣рдХ рдПрдХрдХреЛ рд╕рдЯреНрдЯрд╛ рд╕рдореНрдмрдиреНрдзрд┐рдд рд╡рд░реНрдЧрд▓рд╛рдИ рдкреНрд░рддреНрдпрд╛рдпреЛрдЬрд┐рдд рдЧрд░рд┐рдиреНрдЫред

рд╕рд┐рджреНрдзрд╛рдиреНрддрдХреЛ рдлрд╛рдЗрджрд╛ рдпреЛ рд╣реЛ рдХрд┐ рддреНрдпрд╣рд╛рдБ рдХреЛрдбрдХреЛ рдХреБрдиреИ рдирдХреНрдХрд▓ рдЫреИрди рд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдпреЛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рд░рд▓ рдЫред рдпреЛ рдШрдЯрдирд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рдордгреНрдбрд▓рдорд╛ рдкрдирд┐ рд▓рд╛рдЧреВ рд╣реБрдиреНрдЫред

10 рд╡рд╕реНрддреБ-рдЙрдиреНрдореБрдЦ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рд╕рд┐рджреНрдзрд╛рдиреНрддрд╣рд░реВ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓рд╛рдИ рдерд╛рд╣рд╛ рд╣реБрдиреБрдкрд░реНрдЫ

рдпреА рд╕рдмреИ рд╕рд┐рджреНрдзрд╛рдиреНрддрд╣рд░реВрд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЙрдЪреНрдЪ рд╕рдВрдпреЛрдЬрди рд░ рдХрдо рдпреБрдЧреНрдордирд╕рдБрдЧ рдердк рд▓рдЪрд┐рд▓реЛ, рд╕реБрдиреНрджрд░ рд░ рднрд░рдкрд░реНрджреЛ рдХреЛрдб рд▓реЗрдЦреНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рд╕рд┐рджреНрдзрд╛рдиреНрдд рд░рд╛рдореНрд░реЛ рдЫ, рддрд░ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рдХреЛ рд▓рд╛рдЧрд┐ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдкреНрд░рд╛рдкреНрдд рдЬреНрдЮрд╛рди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди, рдЕрднреНрдпрд╛рд╕ рдЖрд╡рд╢реНрдпрдХ рдЫред рддрдкрд╛рдИрдВрд▓реЗ OOP рд╕рд┐рджреНрдзрд╛рдиреНрддрд╣рд░реВрдорд╛ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдЧрд░рд┐рд╕рдХреЗрдкрдЫрд┐, рддрдкрд╛рдИрдВрдХреЛ рдЕрд░реНрдХреЛ рдЪрд░рдг рд╕рд╛рдзрд╛рд░рдг рд╕рдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рдбрд┐рдЬрд╛рдЗрди рдврд╛рдБрдЪрд╛рд╣рд░реВ рд╕рд┐рдХреНрдиреБ рд╣реБрди рд╕рдХреНрдЫред

Skillbox рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░реНрджрдЫ:

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди