Teiesugused lugejad aitavad MUO-d toetada. Kui teete ostu meie saidil olevate linkide abil, võime teenida sidusettevõtte komisjonitasu. Loe rohkem.

Builderi kujundusmuster kapseldab objekti omadused ja võimaldab teil luua selle esituse. See muster võimaldab konstrueerida keerukaid objekte, millel on erinevad omadused, kuigi need kuuluvad samasse klassi.

Tüüpiline objektiklass sisaldab atribuute, konstruktoreid ja meetodeid. Ehitaja muster võimaldab eraldada objektiklassist ehitusloogika ja paigutada selle klassidesse, mida nimetatakse ehitajateks. Seejärel saate neid ehitajaklasse kasutada sama objekti erinevate variatsioonide loomiseks.

Builderi mustri rakendamine Javas

Hea näide ehitaja mustrist on pitsa tellimise süsteem, mis võimaldab klientidel valida erinevaid kattevalikuid.

Tooteklass

Üks võimalus on muuta koostaja liideseks, kuid kõigepealt peate looma tooteklassi. Selle näidistaotluse toode on pitsa.

avalikklassPitsa{
// omadused
privaatneint tellimuse number;
privaatne String pizzaTainas;
instagram viewer

privaatne String kate;

// getterid ja seadjad
avalikinthankigeOrderNumber(){
tagasi tellimuse number;
}

avaliktühinesetOrderNumber(int tellimuse number){
see.orderNumber = tellimuseNumber;
}

avalik String hanki PizzaDough(){
tagasi pizzaTainas;
}

avaliktühinesetPizzaDough(String pizzaDough){
see.pizzaDough = pizzaDough;
}

avalik String getTopping(){
tagasi kate;
}

avaliktühinesetTopping(Nööride lisamine){
see.topping = topping;
}
}

Ehitajate klass

Pitsa Java klass on kolm atribuuti ja neile vastavad getterid ja seadjad, kuid neid pole konstruktori meetodid. Ehitajaliides võimaldab teil luua pitsaobjekti iga aspekti eraldi. Seejärel võimaldab see kogu pitsaobjekti alla laadida.

avalikliidesEhitaja{
avaliktühinelooPizzaDough();
avaliktühineloo Topping();
avalik Pitsa hanki Pizza();
}

Pitsanäidisrakendus võimaldab klientidel tellida mis tahes lisandeid, näiteks juustu, pepperoni, sibulat või erinevaid kombinatsioone. Seetõttu on üks pitsa, mida klient tellib, juust.

avalikklassJuustuPizzaEhitajarakendabEhitaja{
privaatne pitsa pitsa;

avalikJuustuPizzaEhitaja(){
see.pitsa = uus pitsa ();
}

@Alista
avaliktühinelooPizzaDough(){
see.pizza.setPizzaDough("Tainas");
}

@Alista
avaliktühineloo Topping(){
see.pizza.setTopping("Juust");
}

@Alista
avalik Pitsa hanki Pizza(){
tagasisee.pitsa;
}
}

CheesePizzaBuilderi klass rakendab Builderi liidest ja kasutab seda uue juustupitsa loomiseks. See on üks Pizza objekti kujutis. See teeb seda ka pitsaklassist sõltumatul viisil.

CheesePizzaBuilder klass ei tea pitsaklassist palju, ta teab ainult seda, mida tal on vaja oma funktsiooni täitmiseks teada. Ta teab, et pitsaklassil on tainas ja pealiskiht, ning seab need omadused kahele kindlale väärtusele, mis igal juustupitsal on. Nüüd iga kord, kui rakendus kutsub CheesePizzaBuilder klassi, loob see uue pitsa, millel on juustu kate.

Direktori klass

Režissööri klass on ehitaja mustri oluline aspekt. Betoonist ehitajaklassi ainus eesmärk on luua konkreetne objekt. See saavutatakse, luues objekti erinevad osad eraldi.

Ehitajate betooniklassid pole aga algoritmist teadlikud. Ükski ehitusklass ei oska tainast enne katte lisamist ehitada. See on direktoriklassi funktsioon.

avalikklassDirektor{
privaatne Ehitaja pizzaEhitaja;

avalikDirektor(Builder pizzaBuilder){
see.pizzaBuilder = pizzaBuilder;
}

avalik Pitsa hanki Pizza(){
tagasisee.pizzaBuilder.getPizza();
}

avaliktühinetee Pizza(){
see.pizzaBuilder.createPizzaDough();
see.pizzaBuilder.createTopping();
}
}

Direktori klass kasutab pitsade valmistamisel ehitaja liidest. See on algoritmi hoidja.

Builderi disainimustri kasutamise eelised

Ehitaja disainimustri kasutamise peamine eelis on selle kapseldusomadus. See on tarkvaratehnoloogia ülioluline aspekt, kuna see aitab arendada turvalisi rakendusi.

Selle kujundusmustri teine ​​eelis on selle objektide ehitamise lähenemisviis. See võimaldab teil luua mitmeastmelisi protsesse, kus iga samm on sõltumatu, mis muudab silumise lihtsamaks.