Sobes.tech
Junior — Middle

Obyektni to'g'ridan-to'g'ri yaratish va uning yaratilishi uchun Builder shablonidan foydalanish o'rtasida qanday farqlar mavjud?

sobes.tech AI

AIdan javob

Ob'ektni to'g'ridan-to'g'ri yaratish konstruktor chaqiruvi orqali amalga oshiriladi, masalan, new ClassName(). Bu, barcha kerakli parametrlar ma'lum bo'lsa va ob'ekt juda murakkab bo'lmasa, oddiy va tezkor usuldir.

Builder naqshidan murakkab ob'ektlarni, ayniqsa, agar ular bir nechta parametrlarni o'z ichiga olsa va ba'zilari majburiy bo'lmasa yoki standart qiymatlarga ega bo'lsa, yaratishda foydalaniladi. Builder ob'ektni bosqichma-bosqich sozlash imkonini beradi, bu esa kodning o'qilishi va saqlanishini yaxshilaydi.

Farqlar:

  • To'g'ridan-to'g'ri yaratish: tez, lekin ko'p parametrli uzun konstruktorlarga olib kelishi mumkin.
  • Builder: ko'proq moslashuvchan, o'qishni yaxshilaydi, ko'p majburiy bo'lmagan parametrlar bilan ob'ektlarni yaratishni osonlashtiradi.

Java'da Builder misoli:

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);
        }
    }
}

// Foydalanish:
User user = new User.UserBuilder()
                .setName("Ivan")
                .setAge(30)
                .build();