GRASP рдЯреЗрдореНрдкрд▓реЗрдЯ: рд╕реВрдЪрдирд╛ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ

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





рдкрд░рд┐рдЪрдп


рдХреНрд░реЗрдЧ рд▓рд░реНрдорди рдХреА рдкреБрд╕реНрддрдХ рдПрдкреНрд▓рд╛рдЗрдб рдпреВрдПрдордПрд▓ рдФрд░ рдкреИрдЯрд░реНрди рдореЗрдВ рд╡рд░реНрдгрд┐рдд, 3 рдбреА рд╕рдВрд╕реНрдХрд░рдг, рдЬреАрдЖрд░рдПрдПрд╕рдкреА рдкреИрдЯрд░реНрди рдЧреЛрдл рдкреИрдЯрд░реНрди рдХрд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдУрдУрдкреА рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рдПрдХ рд╕реАрдзрд╛ рдкрд░рд┐рдгрд╛рдо рднреА рд╣реИред рд╡реЗ рддрд╛рд░реНрдХрд┐рдХ рд╕реАрдврд╝реА рдореЗрдВ рд▓рд╛рдкрддрд╛ рдХрджрдо рдХреЛ рдкреВрд░рдХ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдЖрдкрдХреЛ рдУрдУрдкреА рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рд╕реЗ GoF рдкреИрдЯрд░реНрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред GRASP рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкреИрдЯрд░реНрди (рдЬреИрд╕реЗ рдХрд┐ GoF's), рд▓реЗрдХрд┐рди рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдмреАрдЪ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдХреЗ рд╡рд┐рддрд░рдг рдХреЗ рд▓рд┐рдП рдореМрд▓рд┐рдХ рд╕рд┐рджреНрдзрд╛рдВрдд рдирд╣реАрдВ рд╣реИрдВред рдЕрднреНрдпрд╛рд╕ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдмрд╣реБрдд рд▓реЛрдХрдкреНрд░рд┐рдп рдирд╣реАрдВ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬреАрдЖрд░рдПрдПрд╕рдкреА рдкреИрдЯрд░реНрди рдХреЗ рдкреВрд░реНрдг рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреА рдЧрдИ рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рд╕реА рдЕрдиреНрдп рдХреЛрдб рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рд░реНрдд рд╣реИред

GRASP рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреА рдкреВрд░реА рд╕реВрдЪреА рдореЗрдВ 9 рддрддреНрд╡ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

  • рд╕реВрдЪрдирд╛ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ
  • рд░рдЪрдирд╛рдХрд╛рд░
  • рдирд┐рдпрдВрддреНрд░рдХ
  • рдХрдо рдпреБрдЧреНрдорди
  • рдЙрдЪреНрдЪ рд╕рд╛рдордВрдЬрд╕реНрдп
  • рдмрд╣реБрд░реВрдкрддрд╛
  • рд╢реБрджреНрдз рдХрдкрдбрд╝рд╛
  • рдЕрд╡рд┐рд╡реЗрдХ
  • рд╕рдВрд░рдХреНрд╖рд┐рдд рд╡рд┐рд╡рд┐рдзрддрд╛рдПрдБ

рдореИрдВ рд╕реВрдЪреА рд╕реЗ рд╕рдмрд╕реЗ рд╕реНрдкрд╖реНрдЯ рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреИрдЯрд░реНрди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ: рд╕реВрдЪрдирд╛ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮред

рд╕реВрдЪрдирд╛ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ


рд╢рдмреНрджреЛрдВ


рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдпреЛрдЧреЛрдВ рд╕реЗ рдмрдЪрддреЗ рд╣реБрдП, рдЗрд╕ рдкреИрдЯрд░реНрди рдХрд╛ рд╕рд╛рд░ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЙрд╕ рд╕реНрдерд╛рди рдкрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд╣рд╛рдВ рдпрд╣ рдирд┐рд╣рд┐рдд рд╣реИред

рдЙрд▓реНрд▓рдВрдШрди рдХрд╛ рдЙрджрд╛рд╣рд░рдг


рд╕реНрдкрд╖реНрдЯ рд╕рд╛рджрдЧреА рдФрд░ рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдХреЛрдб рдореЗрдВ рдЖрдк рдЗрд╕ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдХрдИ рдЙрд▓реНрд▓рдВрдШрди рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рд░рд▓рддрдо рд╢реНрд░реЗрдгреА рдкреНрд░рдгрд╛рд▓реА рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ: рдСрд░реНрдбрд░ (рдСрд░реНрдбрд░), рдЬрд┐рд╕рдореЗрдВ рдСрд░реНрдбрд░ рдЗрдЯреЗрдо'рдУрд╡ (рдСрд░реНрдбрд░ рд▓рд╛рдЗрдиреЛрдВ) рдХреА рдПрдХ рд╕реВрдЪреА рд╣реЛрддреА рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рддрддреНрд╡реЛрдВ рдореЗрдВ рдЕрдЪреНрдЫрд╛ (рдЙрддреНрдкрд╛рдж) рдФрд░ рдЗрд╕рдХреА рдорд╛рддреНрд░рд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЙрддреНрдкрд╛рдж рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореВрд▓реНрдп, рдирд╛рдо, рдЖрджрд┐ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:

@Getter
@AllArgsConstructor
public class Order {
    private List<OrderItem> orderItems;
    private String destinationAddress;
}

@Getter
@AllArgsConstructor
public class OrderItem {
    private Good good;
    private int amount;
}

@Getter
@AllArgsConstructor
public class Good {
    private String name;
    private int price;
}


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

public class Client {
    public void doSmth() {
        
    }
    
    private int getOrderPrice(Order order) {
        List<OrderItem> orderItems = order.getOrderItems();
        
        int result = 0;
        
        for (OrderItem orderItem : orderItems) {
            int amount = orderItem.getAmount();
            
            Good good = orderItem.getGood();
            int price = good.getPrice();
            
            result += price * amount;
        }
        
        return result;
    }
}


рдЖрдЗрдП рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реИрдВред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрджрд┐ рд╣рдо рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рдг рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдЬреЛрдбрд╝рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЧреНрд░рд╛рд╣рдХ :: getOrderPrice рд╡рд┐рдзрд┐ рдХреЛрдб рди рдХреЗрд╡рд▓ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдмрдврд╝реЗрдЧрд╛, рдмрд▓реНрдХрд┐ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ if-s (рдкреЗрдВрд╢рдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЫреВрдЯ, рдЫреБрдЯреНрдЯрд┐рдпреЛрдВ рдкрд░ рдЫреВрдЯ, рдЫреВрдЯ рдХреЗ рдХрд╛рд░рдг) рд╕реЗ рдШрд┐рд░рд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдереЛрдХ рдЦрд░реАрдж), рдЬреЛ рдЕрдВрдд рдореЗрдВ рдЗрд╕ рддрдереНрдп рдХреЛ рдЬрдиреНрдо рджреЗрдЧрд╛ рдХрд┐ рдпрд╣ рдХреЛрдб рдкрдврд╝рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рдмрд╣реБрдд рдХрдо рдкрд░рд┐рд╡рд░реНрддрдиред

рджреВрд╕рд░реЗ, рдпрджрд┐ рдЖрдк рдПрдХ рдпреВрдПрдордПрд▓ рдЖрд░реЗрдЦ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреНрд▓рд╛рд╕ рдХреА рдирд┐рд░реНрднрд░рддрд╛ 3 рд╡рд░реНрдЧреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИ: рдСрд░реНрдбрд░, рдСрд░реНрдбрд░рдЗрдЯреЗрдо рдФрд░ рдЧреБрдбред рдпрд╣ рдЗрди рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рд╡реНрдпрд╛рдкрд╛рд░рд┐рдХ рддрд░реНрдХ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдо рдСрд░реНрдбрд░ рд╕реЗ рдкреБрдирдГ рдСрд░реНрдбрд░ рдпрд╛ рдЧреБрдб рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЧреЛрджрд╛рдореЛрдВ рдореЗрдВ рдмрдЪреЗ рд╕рд╛рдорд╛рди рдХреА рдХреАрдордд рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП), рд╣рдо рдмрд╕ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдХреНрдпреЛрдВрдХрд┐ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдХреЛрдб рдХрд╛ рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рдПрдХреАрдХрд░рдг рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд▓рдЧрднрдЧ рд╣рд░ рдЬрдЧрд╣ рдХреА рддрд░рд╣ рдЬрд╣рд╛рдВ get'ov рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╣реЛрддреА рд╣реИ, рд╕реВрдЪрдирд╛ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдЖрджреЗрд╢ рдХреЛ рд╕рдорд╛рд╣рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдЖрд╡реЗрджрди рдЙрджрд╛рд╣рд░рдг


рдЖрдЗрдП рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЬрд┐рдореНрдореЗрджрд╛рд░рд┐рдпреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:

@Getter
@AllArgsConstructor
public class Order {
    private List<OrderItem> orderItems;
    private String destinationAddress;
    
    public int getPrice() {
        int result = 0;
        
        for(OrderItem orderItem : orderItems) {
            result += orderItem.getPrice();
        }
        
        return result;
    }
}

@Getter
@AllArgsConstructor
public class OrderItem {
    private Good good;
    private int amount;

    public int getPrice() {
        return amount * good.getPrice();
    }
}

@Getter
@AllArgsConstructor
public class Good {
    private String name;
    private int price;
}

public class Client {
    public void doSmth() {
        Order order = new Order(new ArrayList<>(), "");
        order.getPrice();
    }
}


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

рдирд┐рд╖реНрдХрд░реНрд╖


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

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

All Articles