Junior — Middle
Ի՞նչ տարբերություններ կան օբյեկտի ուղղակի ինստանցավորումը և նրա ստեղծման համար Builder ձևանմուշի օգտագործումը:
sobes.tech AI
Պատասխան AI-ից
Օբյեկտի ուղղակի ինստանցավորումը կատարվում է կոնստրուկտորին կանչելով, օրինակ, new ClassName(). Սա պարզ և արագ միջոց է օբյեկտ ստեղծելու համար, երբ բոլոր անհրաժեշտ պարամետրերը հայտնի են և օբյեկտը շատ բարդ չէ:
Builder դիզայնի օրինակն օգտագործվում է բարդ օբյեկտներ ստեղծելու համար, որոնց պարամետրերը շատ են, հատկապես եթե դրանցից որոշները պարտադիր չեն կամ ունեն դեֆոլտ արժեքներ: Builder-ը թույլ է տալիս աստիճանաբար կարգավորել օբյեկտը, բարելավելով կոդի ընթեռնելիությունը և պահպանելիությունը:
Տարբերություններ՝
- Ուղիղ ստեղծում: արագ է, բայց կարող է հանգեցնել երկար կոնստրուկտորների, որոնց պարամետրերը շատ են:
- Builder: ավելի ճկուն է, բարելավում է ընթեռնելիությունը, հեշտացնում է բազմափուլ պարամետրերով օբյեկտների ստեղծումը:
Java-ում Builder-ի օրինակ՝
public class User {
private String name;
private int age;
private String address;
private User(UserBuilder builder) {
this.name = builder.name;
this.age = builder.age;
this.address = builder.address;
}
public static class UserBuilder {
private String name;
private int age;
private String address;
public UserBuilder setName(String name) {
this.name = name;
return this;
}
public UserBuilder setAge(int age) {
this.age = age;
return this;
}
public UserBuilder setAddress(String address) {
this.address = address;
return this;
}
public User build() {
return new User(this);
}
}
}
// Օգտագործում՝
User user = new User.UserBuilder()
.setName("Ivan")
.setAge(30)
.build();