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.

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.

publiskiklasēpica{
// īpašības
Privātsstarpt pasūtījuma numurs;
Privāts Stīga picaMīkla;
Privāts Stīga
instagram viewer
papildināšana;

// ieguvēji un noteicēji
publiskistarptgetOrderNumber(){
atgriezties pasūtījuma numurs;
}

publiskinederīgssetOrderNumber(starpt pasūtījuma numurs){
šis.orderNumber = pasūtījumaNumber;
}

publiski Stīga saņemtPizzaDough(){
atgriezties picaMīkla;
}

publiskinederīgssetPizzaDough(Auklu pizzaDough){
šis.pizzaDough = pizzaDough;
}

publiski Stīga getTopping(){
atgriezties papildināšana;
}

publiskinederīgssetTopping(stīgu papildināšana){
šis.topping = papildināšana;
}
}

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.

publiskisaskarneCeltnieks{
publiskinederīgsizveidotPizzaDough();
publiskinederīgsizveidot Topping();
publiski pica saņemt Picu();
}

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.

publiskiklasēSiersPizzaBuilderīstenoCeltnieks{
Privāts Picas pica;

publiskiSiersPizzaBuilder(){
šis.pica = jauns Pica();
}

@Override
publiskinederīgsizveidotPizzaDough(){
šis.pizza.setPizzaDough("Mīkla");
}

@Override
publiskinederīgsizveidot Topping(){
šis.pizza.setTopping("siers");
}

@Override
publiski pica saņemt Picu(){
atgrieztiesšis.pica;
}
}

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.

publiskiklasēDirektors{
Privāts Builder pizzaBuilder;

publiskiDirektors(Builder pizzaBuilder){
šis.pizzaBuilder = pizzaBuilder;
}

publiski pica saņemt Picu(){
atgrieztiesšis.pizzaBuilder.getPizza();
}

publiskinederīgspagatavot Picu(){
šis.picasBuilder.createPizzaDough();
šis.picasBuilder.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.