Kas ir Builder dizaina modelis?

Kas ir Builder dizaina modelis?
Tādi lasītāji kā jūs palīdz atbalstīt MUO. Veicot pirkumu, izmantojot saites mūsu vietnē, mēs varam nopelnīt filiāles komisiju. Lasīt vairāk.

Builder dizaina modelis iekapsulē objekta īpašības un ļauj izveidot tā attēlojumu. Šis modelis ļauj konstruēt sarežģītus objektus ar dažādām īpašībām, lai gan tie pieder vienai klasei.





Tipiska objektu klase satur atribūtus, konstruktorus un metodes. Celtnieka modelis ļauj iegūt būvniecības loģiku no objektu klases un ievietot to klasēs, ko sauc par celtniekiem. Pēc tam varat izmantot šīs veidotāju klases, lai izveidotu dažādas viena un tā paša objekta variācijas.





pievienojiet nodarbību grafiku Google kalendāram

Builder modeļa ieviešana Java

Labs celtnieka modeļa piemērs ir picu pasūtīšanas sistēma, kas ļauj klientiem izvēlēties dažādas pildījuma iespējas.





Produktu klase

Viena pieeja ir izveidot veidotāju par saskarni, taču vispirms būs jāizveido produkta klase. Produkts šajā pieteikuma paraugā ir pica.

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

Celtnieku klase

Pica Java klase ir trīs īpašības un to attiecīgie ieguvēji un iestatītāji, taču tādu nav konstruktora metodes . Veidotāja saskarne ļaus jums izveidot katru picas objekta aspektu atsevišķi. Pēc tam tas ļaus izgūt visu picas objektu.



nevar piekļūt ārējam cietajam diskam
 public interface Builder { 
    public void createPizzaDough();
    public void createTopping();
    public Pizza getPizza();
}

Picas parauga aplikācija ļauj klientiem pasūtīt jebkādus piedevas, piemēram, sieru, peperoni, sīpolus vai dažādas kombinācijas. Tāpēc viena pica, ko klients pasūtīs, ir siers.

 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 klase ievieš Builder saskarni un izmanto to, lai izveidotu jaunu siera picu. Šis ir viens no Pica objekta attēlojumiem. Tas tiek darīts arī tādā veidā, kas nav atkarīgs no picu klases.





CheesePizzaBuilder klase neko daudz nezina par picu klasi, tā zina tikai to, kas tai jāzina, lai izpildītu savu funkciju. Tā zina, ka Picas klasei ir mīklas un virskārtas īpašības, un tā nosaka šīs īpašības uz divām konkrētām vērtībām, kas būs katrai siera picai. Tagad katru reizi, kad lietojumprogramma izsauc CheesePizzaBuilder klasi, tā izveidos jaunu picu ar siera pildījumu.

Direktoru klase

Direktoru klase ir būtisks celtnieka modeļa aspekts. Betona celtnieku klases vienīgais mērķis ir izveidot konkrētu objektu. Tas tiek panākts, izveidojot dažādas objekta daļas atsevišķi.





Taču celtnieku betona klases algoritmu nezina. Neviena no celtnieku klasēm neprot veidot mīklu pirms virskārtas pievienošanas. Tā ir režisoru klases funkcija.

ko dara viedais televizors, ko nedara parasts televizors
 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();
    }
}

Direktoru klase picu gatavošanai izmanto celtnieka saskarni. Tas ir algoritma glabātājs.

Builder dizaina modeļa izmantošanas priekšrocības

Galvenā celtnieka dizaina modeļa izmantošanas priekšrocība ir tā iekapsulēšanas īpašība. Tas ir būtisks programmatūras inženierijas aspekts, jo tas palīdz izstrādāt drošas lietojumprogrammas.

Vēl viena šī dizaina modeļa priekšrocība ir tā objektu būvniecības pieeja. Tas ļauj izveidot daudzpakāpju procesus, kur katrs solis ir neatkarīgs, kas atvieglo atkļūdošanu.