خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

الگوی طراحی سازنده چیست؟

مشکلات ایجاد اشیاء پیچیده را با این الگوی مفید حل کنید.

الگوی طراحی Builder ویژگی های یک شی را در بر می گیرد و به شما اجازه می دهد تا یک نمایش از آن بسازید. این الگو به شما امکان می دهد اشیاء پیچیده را با ویژگی های متفاوت بسازید حتی اگر متعلق به یک کلاس باشند.

یک کلاس شی معمولی شامل ویژگی ها، سازنده ها و متدها است. الگوی سازنده به شما این امکان را می دهد که منطق ساخت و ساز را از کلاس شی استخراج کنید و آن را در کلاس هایی به نام سازنده قرار دهید. سپس می توانید از این کلاس های سازنده برای ایجاد تغییرات مختلف از یک شی استفاده کنید.

پیاده سازی الگوی سازنده در جاوا

یک مثال خوب از الگوی سازنده، سیستم سفارش پیتزا است که به مشتریان اجازه می دهد تا گزینه های مختلف رویه را انتخاب کنند.

کلاس محصول

یک رویکرد این است که سازنده را به یک رابط تبدیل کنید، اما ابتدا باید یک کلاس محصول ایجاد کنید. محصول موجود در این نمونه اپلیکیشن پیتزا می باشد.

public class Pizza {
    // properties
    private int orderNumber;
    private String pizzaDough;
    private String topping;
 
    // getters and setters
    public int getOrderNumber() {
        return orderNumber;
    }
 
    public void setOrderNumber(int orderNumber) {
        this.orderNumber = orderNumber;
    }
 
    public String getPizzaDough() {
        return pizzaDough;
    }
 
    public void setPizzaDough(String pizzaDough) {
        this.pizzaDough = pizzaDough;
    }
 
    public String getTopping() {
        return topping;
    }
 
    public void setTopping(String topping) {
        this.topping = topping;
    }
}

کلاس سازنده

کلاس پیتزا جاوا دارای سه ویژگی و گیرنده و تنظیم کننده مربوط به آنها است، اما هیچ متد سازنده ای وجود ندارد. رابط سازنده به شما این امکان را می دهد که هر جنبه از شی پیتزا را به طور جداگانه ایجاد کنید. سپس به شما امکان می دهد کل شی پیتزا را بازیابی کنید.

public interface Builder {
    public void createPizzaDough();
    public void createTopping();
    public Pizza getPizza();
}

برنامه نمونه پیتزا به مشتریان اجازه می دهد تا هر گونه موادی مانند پنیر، پپرونی، پیاز یا ترکیبات مختلف را سفارش دهند. بنابراین، یکی از پیتزاهایی که مشتری سفارش می دهد پنیر است.

public class CheesePizzaBuilder implements Builder {
    private Pizza pizza;
 
    public CheesePizzaBuilder() {
        this.pizza = new Pizza();
    }
 
    @Override
    public void createPizzaDough() {
        this.pizza.setPizzaDough("Dough");
    }
 
    @Override
    public void createTopping() {
        this.pizza.setTopping("Cheese");
    }
 
    @Override
    public Pizza getPizza() {
        return this.pizza;
    }
}

کلاس CheesePizzaBuilder رابط Builder را پیاده سازی می کند و از آن برای ایجاد یک پیتزا پنیر جدید استفاده می کند. این یک نمایش از شی پیتزا است. همچنین این کار را به روشی مستقل از کلاس پیتزا انجام می دهد.

مطلب مرتبط:   cheat.sh به شما امکان دسترسی به بهترین برگه های تقلب لینوکس و برنامه نویسی را می دهد

کلاس CheesePizzaBuilder چیز زیادی درباره کلاس پیتزا نمی‌داند، فقط می‌داند که برای تکمیل عملکردش چه چیزی باید بداند. می داند که کلاس پیتزا دارای یک خمیر و یک خاصیت تاپینگ است و این ویژگی ها را روی دو مقدار مشخصی که هر پیتزا پنیری خواهد داشت تنظیم می کند. اکنون هر بار که برنامه کلاس CheesePizzaBuilder را فراخوانی می کند، یک پیتزا جدید ایجاد می کند که رویه پنیر دارد.

کلاس کارگردان

کلاس کارگردان یک جنبه حیاتی از الگوی سازنده است. تنها هدف یک کلاس سازنده بتن، ایجاد یک شی خاص است. با ایجاد قسمت های مختلف یک شی به طور جداگانه به این امر دست می یابد.

با این حال، طبقات بتن سازنده از الگوریتم بی اطلاع هستند. هیچ یک از کلاس های سازنده نمی دانند که خمیر را قبل از افزودن رویه بسازند. این کارکرد کلاس کارگردان است.

public class Director {
    private Builder pizzaBuilder;
 
    public Director(Builder pizzaBuilder) {
        this.pizzaBuilder = pizzaBuilder;
    }
 
    public Pizza getPizza() {
        return this.pizzaBuilder.getPizza();
    }
 
    public void makePizza() {
        this.pizzaBuilder.createPizzaDough();
        this.pizzaBuilder.createTopping();
    }
}

کلاس Director از رابط سازنده برای تهیه پیتزا استفاده می کند. حافظ الگوریتم است.

مزایای استفاده از الگوی طراحی ساز

مزیت اصلی استفاده از الگوی طراحی سازنده خاصیت کپسولاسیون آن است. این یکی از جنبه های مهم مهندسی نرم افزار است، زیرا به توسعه برنامه های کاربردی ایمن کمک می کند.

یکی دیگر از مزایای این الگوی طراحی، رویکرد ساخت شی آن است. این به شما امکان می دهد فرآیندهای چند مرحله ای را ایجاد کنید، جایی که هر مرحله مستقل است، که اشکال زدایی را آسان تر می کند.

مطلب مرتبط:   10 ایده پروژه جاوا اسکریپت برای مبتدیان