Builder Design Pattern در اندروید

Builder Design Pattern در اندروید

الگوی طراحی Builder ، در واقع وظیفه ی ساخت تابع سازنده در کلاس دیگری را دارد که باعث پیکربندی بهتر کد نویسی شما میشود !

برای مثال شما در برنامه نویسی اندروید ، برای ساخت AlertDialog از Builder استفاده میکنید ، به کد زیر دقت کنید :


AlertDialog.Builder builder1 = new AlertDialog.Builder(context);
builder1.setMessage("Write your message here.");
builder1.setCancelable(true);
AlertDialog alert11 = builder1.create();
alert11.show();



خب حالا برای آموزش :

فرض کنید یک مدل به شکل زیر داریم


public class Person {
    private String firstName;
    private String middleName;
    private String lastName;
    private int age;

    public Person(String firstName, String middleName, String lastName, int age) {
        this.firstName = firstName;
        this.middleName = middleName;
        this.lastName = lastName;
        this.age = age;
    }
    public Person(String firstName, String lastName, int age) {
        this(firstName, null, lastName, age);
    }
    public Person(String firstName, int age) {
        this(firstName, null, age);
    }
    public String getFirstName() {
        return firstName;
    }
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }
    public String getMiddleName() {
        return middleName;
    }
    public void setMiddleName(String middleName) {
        this.middleName = middleName;
    }
    public String getLastName() {
        return lastName;
    }
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
}



خب حالا برای ساخت Builder برای این کلاس یک تابع static به نام Builder در همین کلاس فوق میسازیم که اجزای این تابع رو به مدل بالا متصل میکنیم :


 public static class Builder {
        private String firstNames;
        private String middleNames;
        private String lastNames;
        private int ages;
        private String fathersNames;
        private String mothersNames;
        private double heights;
        private double weights;

        public Builder(int age){
            this.ages =age;
        }

        public Builder setFirstName(String firstName) {
            this.firstNames = firstName;
            return this;
        }


        public Builder setLastName(String lastName) {
            this.lastNames = lastName;
            return this;
        }


        public Person build() {
            return new Person(firstNames,lastNames, ages);
        }
}


خب همانطور که در تابع Build مشاهده میکنید تمام مقادیری که دریافت کرده ایم به مدلی که طراحی کردیم دادیم .

که برای استفاده از این الگو به کد زیر دقت کنید :


     Person person = new Person.Builder(25)
                .setFirstName("Hossein")
                .setLastName("Akbari")
		.build();

همانطور که مشاهده میکنید تابع person.builder زمانی که Build میشه یک مدل به نام Person برای ما برگشت میزند .


امیدوارم از این آموزش لذت کافی رو برده باشید

برای دانلود سورس کد لطفا کلیک کنید



دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *