Sobes.tech
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();