Advertisement
Guest User

Untitled

a guest
Apr 27th, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 35.85 KB | None | 0 0
  1. COMPOSITE
  2.  
  3.  
  4. public abstract class ANod {
  5. public abstract String getDenumire();
  6. public abstract int getPret();
  7.  
  8. public String getInfo(){
  9. return this.getDenumire() + " " + this.getPret();
  10. }
  11.  
  12. public void adaugaNod(ANod elemStructura){
  13. throw new UnsupportedOperationException();
  14. }
  15.  
  16. public void eliminaNod(ANod elemStructura){
  17. throw new UnsupportedOperationException();
  18. }
  19.  
  20. public ANod getNod (int i){
  21. throw new UnsupportedOperationException();
  22. }
  23. }
  24.  
  25.  
  26. --------------------------------------------------------
  27. public class Meniu {
  28. Structura structura;
  29. String numeRestaurant;
  30.  
  31. public Meniu(Structura structura, String numeRestaurant){
  32. this.structura = structura;
  33. this.numeRestaurant = numeRestaurant;
  34. }
  35.  
  36. public String getNumeRestaurant() {
  37. return numeRestaurant;
  38. }
  39.  
  40. public void setNumeRestaurant(String numeRestaurant) {
  41. this.numeRestaurant = numeRestaurant;
  42. }
  43.  
  44. }
  45.  
  46. --------------------------------------------------------
  47. public class Produs extends ANod{
  48.  
  49. String denumire;
  50. int pret;
  51.  
  52. public Produs(String denumire, int pret){
  53. this.denumire = denumire;
  54. this.pret = pret;
  55. }
  56.  
  57. @Override
  58. public String getDenumire() {
  59. return this.denumire;
  60. }
  61.  
  62. @Override
  63. public int getPret() {
  64. return this.pret;
  65. }
  66.  
  67. public void setDenumire(String denumire) {
  68. this.denumire = denumire;
  69. }
  70.  
  71. public void setPret(int pret) {
  72. this.pret = pret;
  73. }
  74. }
  75. ---------------------------------------------------
  76. import java.util.ArrayList;
  77.  
  78. public class Structura extends ANod{
  79.  
  80. ArrayList<ANod> structura = new ArrayList<>();
  81. String numeStructura;
  82.  
  83. public Structura(String numeStructura){
  84. this.numeStructura = numeStructura;
  85. }
  86.  
  87. @Override
  88. public String getDenumire() {
  89. throw new UnsupportedOperationException();
  90. }
  91.  
  92. @Override
  93. public int getPret() {
  94. throw new UnsupportedOperationException();
  95. }
  96.  
  97. @Override
  98. public String getInfo(){
  99. String info = "";
  100. info += this.numeStructura + "\n";
  101. for(ANod n: structura){
  102. info += " " + n.getInfo();
  103. info += "\n";
  104. }
  105. return info;
  106. }
  107.  
  108. @Override
  109. public void adaugaNod(ANod elemStructura){
  110. structura.add(elemStructura);
  111. }
  112.  
  113. @Override
  114. public void eliminaNod(ANod elemStructura){
  115. structura.remove(elemStructura);
  116. }
  117.  
  118. @Override
  119. public ANod getNod(int i){
  120. return (ANod)structura.get(i);
  121. }
  122.  
  123. }------------------------------------------------
  124.  
  125.  
  126. public class TestComposite {
  127.  
  128. public static void main(String[] args) {
  129. //definire nivel 0 arborescenta
  130. Structura structuraMeniu = new Structura("Meniu restaurant");
  131.  
  132. Meniu meniu = new Meniu(structuraMeniu, "Pizzeria ASE");
  133.  
  134. //definire nivel 1 arborescenta
  135. Structura structuraBauturi = new Structura("Bauturi");
  136. Structura structuraMancare = new Structura("Mancare");
  137. structuraMeniu.adaugaNod(structuraBauturi);
  138. structuraMeniu.adaugaNod(structuraMancare);
  139.  
  140. //definire noduri nivel 2 arborescenta (Bauturi)
  141. structuraBauturi.adaugaNod(new Produs("CocaCola", 10));
  142. structuraBauturi.adaugaNod(new Produs("Pepsi", 9));
  143.  
  144. //definire noduri nivel 2 arborescenta (Mancare)
  145. Structura structuraMancarePizza = new Structura("Pizza");
  146. Structura structuraMancarePaste = new Structura("Paste");
  147. structuraMancare.adaugaNod(structuraMancarePizza);
  148. structuraMancare.adaugaNod(structuraMancarePaste);
  149.  
  150. //definire noduri nivel 3 arborescenta (Mancare - Pizza)
  151. structuraMancarePizza.adaugaNod(new Produs("Pizza Margherita", 25));
  152. structuraMancarePizza.adaugaNod(new Produs("Pizza Capriciosa", 29));
  153.  
  154. //definire noduri nivel 3 arborescenta (Mancare - Paste)
  155. structuraMancarePaste.adaugaNod(new Produs("Paste carbonara", 27));
  156. structuraMancarePaste.adaugaNod(new Produs("Paste branza", 32));
  157.  
  158. //afisare structura Meniu
  159. System.out.println(meniu.getNumeRestaurant());
  160. System.out.println(structuraMeniu.getInfo());
  161. }
  162.  
  163. }
  164. ================================================================
  165. PROXY
  166. public class Contract implements IContract{
  167. private String infContract = null;
  168.  
  169. public Contract(String infContract) {
  170. this.infContract = infContract;
  171. imprimareContract();
  172. }
  173.  
  174. @Override
  175. public void multiplicareContract() {
  176. System.out.println("Xerox de pe contractul " + infContract);
  177. }
  178.  
  179. public void imprimareContract(){
  180. System.out.println("Imprimare contract " + infContract);
  181. }
  182.  
  183. }
  184.  
  185. -----------------------------------------------------------------
  186. public interface IContract {
  187. public abstract void multiplicareContract();
  188. }
  189. ----------------------------------------------------------------
  190. public class ProxyContract implements IContract{
  191. private String infContract = null;
  192. private Contract contract = null;
  193.  
  194. public ProxyContract(String infContract) {
  195. this.infContract = infContract;
  196. }
  197.  
  198. @Override
  199. public void multiplicareContract() {
  200. if(contract == null)
  201. contract = new Contract(infContract);
  202. contract.multiplicareContract();
  203. }
  204.  
  205. }
  206.  
  207. --------------------------------------------------------------
  208. public class TestProxy {
  209.  
  210. public static void main(String[] args) {
  211. IContract contract1 = new ProxyContract("text");
  212.  
  213. contract1.multiplicareContract();
  214. contract1.multiplicareContract();
  215. contract1.multiplicareContract();
  216. }
  217.  
  218. }
  219. ==============================================================
  220. SINGLETON
  221.  
  222. public class MeseRestaurant {
  223.  
  224. private static MeseRestaurant instance=null;
  225. private int nrMese=10;
  226. private boolean ocupareMese[]=new boolean[nrMese];
  227.  
  228. private MeseRestaurant() throws Exception{
  229. if(instance!=null)
  230. throw new Exception("obiect deja creat");
  231. }
  232.  
  233. public static MeseRestaurant getInstance() throws Exception{
  234. if(instance==null)
  235. instance=new MeseRestaurant();
  236. return instance;
  237. }
  238.  
  239. public void setOcupareMasa(int i) {
  240. if(i>=1 && i<=nrMese && ocupareMese[i]==false)
  241. ocupareMese[i]=true;
  242.  
  243. }
  244. public void setEliberareMasa(int i) {
  245. if(i>=1 && i<=nrMese && ocupareMese[i]==true)
  246. ocupareMese[i]=false;
  247.  
  248. }
  249.  
  250. @Override
  251. public String toString() {
  252. String rezultat = "";
  253. for(int i=0;i<nrMese;i++)
  254. rezultat += i + " " + ocupareMese[i] + " ";
  255. return rezultat;
  256. }
  257.  
  258. }
  259. ----------------------------------------------------------------------
  260.  
  261. public class Ospatar {
  262. private String nume;
  263. private MeseRestaurant mese;
  264.  
  265. public Ospatar(String nume) throws Exception{
  266. this.nume=nume;
  267. mese=MeseRestaurant.getInstance();
  268. }
  269. public void setOcupareMasa(int i){
  270. mese.setOcupareMasa(i);
  271. }
  272. public void setEliberareMasa(int i){
  273. mese.setEliberareMasa(i);
  274. }
  275. public String getNume(){
  276. return nume;
  277. }
  278. public MeseRestaurant getMese() {
  279. return mese;
  280. }
  281.  
  282.  
  283. }
  284. -------------------------------------------------------------
  285.  
  286. public class TestSingleton {
  287.  
  288. public static void main(String[] args) throws Exception {
  289. Ospatar o=new Ospatar("Ion");
  290. Ospatar p=new Ospatar("Gigi");
  291. if(o.getMese()==p.getMese())
  292. System.out.println("ref id");
  293. else System.out.println("ref nu sunt id");
  294.  
  295. o.setOcupareMasa(3);
  296. System.out.println(o.getMese());
  297. System.out.println(p.getMese());
  298.  
  299.  
  300. }
  301.  
  302. }
  303. ================================================================
  304. DECORATOR
  305. public class CrownPizza extends DecoratorPizza{
  306.  
  307. public CrownPizza(Pizza pizza) {
  308. super(pizza);
  309. }
  310.  
  311. @Override
  312. String getComponente() {
  313. return super.getComponente() + ", blat crown";
  314. }
  315.  
  316. @Override
  317. float getCost() {
  318. return super.getCost() + 10;
  319. }
  320. }
  321.  
  322. --------------------------------------------------------------
  323. public abstract class DecoratorPizza extends Pizza{
  324. protected Pizza pizza;
  325.  
  326. public DecoratorPizza(Pizza pizza) {
  327. this.pizza = pizza;
  328. }
  329.  
  330. @Override
  331. String getComponente() {
  332. return pizza.getComponente();
  333. }
  334.  
  335. @Override
  336. float getCost() {
  337. return pizza.getCost();
  338. }
  339. }
  340. -------------------------------------------------
  341.  
  342. public abstract class Pizza {
  343. private String denumire;
  344. private float cost;
  345.  
  346. abstract String getComponente();
  347. abstract float getCost();
  348.  
  349. }
  350. ---------------------
  351.  
  352. public class PizzaTipA extends Pizza{
  353.  
  354. @Override
  355. String getComponente() {
  356. return "blat, sos rosii, branza, sunca";
  357. }
  358.  
  359. @Override
  360. float getCost() {
  361. return 20;
  362. }
  363.  
  364. }
  365. ------------------------------
  366. public class TestDecorator {
  367.  
  368. public static void main(String[] args) {
  369. Pizza pizzaTipA = new PizzaTipA();
  370. System.out.println("Pizza de baza tip A");
  371. System.out.println(pizzaTipA.getComponente());
  372. System.out.println(pizzaTipA.getCost());
  373.  
  374. pizzaTipA = new PizzaTipA();
  375.  
  376. Pizza pizzaDecorataCrown = new CrownPizza(pizzaTipA);
  377. System.out.println("Pizza decorata Crown");
  378. System.out.println(pizzaDecorataCrown.getComponente());
  379. System.out.println(pizzaDecorataCrown.getCost());
  380.  
  381. }
  382.  
  383. }
  384.  
  385.  
  386. ===================
  387. FACADE
  388. import java.util.ArrayList;
  389.  
  390. public class Bucatarie {
  391. protected ArrayList<Cuptor> listaCuptoare = new ArrayList<>();
  392.  
  393. public Bucatarie(){
  394. Cuptor cuptor1 = new Cuptor("1", true);
  395. Cuptor cuptor2 = new Cuptor("2", true);
  396. listaCuptoare.add(cuptor1);
  397. listaCuptoare.add(cuptor2);
  398. }
  399.  
  400. public void inchideCuptoare(){
  401. System.out.println("Se inchid cuptoarele");
  402. for(Cuptor cuptor: listaCuptoare)
  403. cuptor.setEsteInchis(true);
  404. }
  405.  
  406. public void deschideCuptoare(){
  407. System.out.println("Se deschid cuptoarele");
  408. for(Cuptor cuptor: listaCuptoare)
  409. cuptor.setEsteInchis(false);
  410. }
  411. }
  412.  
  413. ----------------
  414. public class Cuptor {
  415. private String codCuptor;
  416. private boolean esteInchis;
  417.  
  418. public Cuptor(String codCuptor, boolean esteInchis) {
  419. this.codCuptor = codCuptor;
  420. this.esteInchis = esteInchis;
  421. }
  422.  
  423. public String getCodCuptor() {
  424. return codCuptor;
  425. }
  426.  
  427. public boolean isEsteInchis() {
  428. return esteInchis;
  429. }
  430.  
  431. public void setEsteInchis(boolean esteInchis) {
  432. this.esteInchis = esteInchis;
  433. }
  434.  
  435. }
  436.  
  437. ---------------------
  438.  
  439. public class RestaurantFacade {
  440. Bucatarie bucatarie;
  441. UsaIntrare usaIntrare;
  442.  
  443. public RestaurantFacade(Bucatarie bucatarie, UsaIntrare usaIntrare) {
  444. this.bucatarie = bucatarie;
  445. this.usaIntrare = usaIntrare;
  446. }
  447.  
  448. public void inchideRestaurant(){
  449. this.bucatarie.inchideCuptoare();
  450. this.usaIntrare.inchideUsa();
  451. }
  452.  
  453. public void deschideRestaurant(){
  454. this.usaIntrare.deschideUsa();
  455. this.bucatarie.deschideCuptoare();
  456. }
  457. }
  458.  
  459.  
  460. ----------------------
  461. public class UsaIntrare {
  462. protected boolean esteInshisa = true;
  463.  
  464. public void deschideUsa(){
  465. System.out.println("Se deschide usa");
  466. this.esteInshisa = false;
  467. }
  468.  
  469. public void inchideUsa(){
  470. System.out.println("Se inchide usa");
  471. this.esteInshisa = true;
  472. }
  473. }
  474.  
  475.  
  476. ---------------------
  477. public class TestFacade {
  478.  
  479. public static void main(String[] args) {
  480. Bucatarie bucatarie = new Bucatarie();
  481. UsaIntrare usaIntrare = new UsaIntrare();
  482.  
  483. RestaurantFacade restaurant = new RestaurantFacade(bucatarie, usaIntrare);
  484.  
  485. System.out.println("Procedura deschidere restaurant!");
  486. restaurant.deschideRestaurant();
  487.  
  488. System.out.println("\nProcedura inchidere restaurant!");
  489. restaurant.inchideRestaurant();
  490.  
  491. }
  492.  
  493. }
  494. =======================
  495. STATE
  496. public class Angajat {
  497. private String numeAngajat;
  498. private IStare stareCurenta;
  499.  
  500. public Angajat(String numeAngajat) {
  501. this.numeAngajat = numeAngajat;
  502. this.stareCurenta = new StarePauza();
  503. }
  504.  
  505. public void setStare(EStari stare) {
  506. if(stare == EStari.StareConcediu)
  507. this.stareCurenta = new StareConcediu();
  508. else
  509. if(stare == EStari.StarePauza)
  510. this.stareCurenta = new StarePauza();
  511. else
  512. this.stareCurenta = new StareTura();
  513. }
  514.  
  515. public void actiune(String mesaj){
  516. this.stareCurenta.actiune(mesaj);
  517. }
  518. }
  519.  
  520. -----------------
  521.  
  522. public enum EStari {
  523. StareTura,
  524. StareConcediu,
  525. StarePauza
  526. }
  527. ----------
  528. public interface IStare {
  529. void actiune(String mesaj);
  530. }
  531.  
  532. -------------
  533. public class StareConcediu implements IStare{
  534.  
  535. @Override
  536. public void actiune(String mesaj) {
  537. System.out.println("Angajat in concediu. Nu poate rezolva problema "
  538. + mesaj);
  539. }
  540.  
  541. }
  542. ----------------
  543. public class StarePauza implements IStare{
  544.  
  545. @Override
  546. public void actiune(String mesaj) {
  547. System.out.println("Angajat in pauza. Se ocupa de problema "
  548. + mesaj);
  549. }
  550.  
  551. }
  552. ---------------
  553. public class StareTura implements IStare{
  554.  
  555. @Override
  556. public void actiune(String mesaj) {
  557. System.out.println("Angajat pe tura. Se ocupa de problema "
  558. + mesaj);
  559. }
  560.  
  561. }
  562.  
  563.  
  564. -------------
  565. public class TestState {
  566.  
  567. public static void main(String[] args) {
  568. Angajat angajat = new Angajat("Costache Marian");
  569. angajat.actiune("TO DO");
  570.  
  571. angajat.setStare(EStari.StareConcediu);
  572. angajat.actiune("TO DO");
  573. }
  574.  
  575. }
  576.  
  577. =============
  578. CHAINOFRESP
  579. public class Bucatar extends Handler{
  580.  
  581. @Override
  582. void procesareComanda(Comanda comanda) {
  583. System.out.println("Bucatarul a procesat comanda "
  584. + comanda.getProdus());
  585.  
  586. }
  587.  
  588. }
  589. --------------
  590. public class Comanda {
  591. private String produs;
  592. private int cantitate;
  593. private int grad;
  594.  
  595. public Comanda(String produs, int cantitate, int grad) {
  596. this.produs = produs;
  597. this.cantitate = cantitate;
  598. this.grad = grad;
  599. }
  600.  
  601. public String getProdus() {
  602. return produs;
  603. }
  604.  
  605. public int getCantitate() {
  606. return cantitate;
  607. }
  608.  
  609. public int getGrad() {
  610. return grad;
  611. }
  612.  
  613. }
  614.  
  615. -------------
  616. public abstract class Handler {
  617. protected Handler succesor = null;
  618.  
  619. public void setSuccesor(Handler succesor) {
  620. this.succesor = succesor;
  621. }
  622.  
  623. abstract void procesareComanda(Comanda comanda);
  624. }
  625.  
  626. ------------
  627. public class Ospatar extends Handler{
  628.  
  629. @Override
  630. void procesareComanda(Comanda comanda) {
  631. if(comanda.getGrad() <= 5)
  632. System.out.println("Ospatarul a procesat comanda "
  633. + comanda.getProdus());
  634. else {
  635. System.out.println("Ospatarul nu poate procesa comanda");
  636. if(this.succesor != null)
  637. this.succesor.procesareComanda(comanda);
  638. }
  639. }
  640.  
  641. }
  642. --------------
  643. public class TestChain {
  644.  
  645. public static void main(String[] args) {
  646. Ospatar ospatar = new Ospatar();
  647. Bucatar bucatar = new Bucatar();
  648.  
  649. ospatar.setSuccesor(bucatar);
  650.  
  651. Comanda comanda1 = new Comanda("Pizza", 2, 15);
  652. Comanda comanda2 = new Comanda("Bautura", 1, 3);
  653. Comanda comanda3 = new Comanda("Cafea", 1, 4);
  654.  
  655. System.out.println("COMANDA 1");
  656. ospatar.procesareComanda(comanda1);
  657.  
  658. System.out.println("\nCOMANDA 2");
  659. ospatar.procesareComanda(comanda2);
  660.  
  661. System.out.println("\nCOMANDA 3");
  662. ospatar.procesareComanda(comanda3);
  663. }
  664.  
  665. }
  666. ==================
  667. FACTORY
  668.  
  669.  
  670. public abstract class AAngajat {
  671. private String nume;
  672.  
  673. public void setNume(String nume) {
  674. this.nume = nume;
  675. }
  676. public abstract String getTip();
  677. public abstract void afisare();
  678.  
  679. }
  680. ---------------
  681.  
  682. public class AngajatFactory {
  683. public AAngajat creareAngajat(TipAngajat tip, String nume){
  684. AAngajat angajat=null;
  685. switch(tip){
  686. case Ospatar:
  687. angajat=new Ospatar();
  688. angajat.setNume(nume);
  689. break;
  690. case Bucatar:
  691. angajat=new Bucatar();
  692. angajat.setNume(nume);
  693. break;
  694. }
  695. return angajat;
  696. }
  697. }
  698. ----------------
  699.  
  700. public class Bucatar extends AAngajat{
  701.  
  702. @Override
  703. public String getTip() {
  704. // TODO Auto-generated method stub
  705. return "Bucatar";
  706. }
  707.  
  708. @Override
  709. public void afisare() {
  710. System.out.println("E bucatar");
  711.  
  712. }
  713.  
  714. }
  715. ---------------
  716.  
  717. public class Ospatar extends AAngajat{
  718.  
  719. @Override
  720. public String getTip() {
  721. // TODO Auto-generated method stub
  722. return "Ospatar";
  723. }
  724.  
  725. @Override
  726. public void afisare() {
  727. System.out.println("Este ospatar");
  728.  
  729. }
  730.  
  731.  
  732. }
  733. -------------
  734.  
  735. public class TestFactory {
  736.  
  737. public static void main(String[] args) {
  738. AngajatFactory af=new AngajatFactory();
  739.  
  740. AAngajat a=af.creareAngajat(TipAngajat.Bucatar, "asd");
  741. AAngajat b=af.creareAngajat(TipAngajat.Ospatar, "bbb");
  742.  
  743. System.out.println(a.getTip());
  744. b.afisare();
  745. }
  746.  
  747. }
  748. ------------
  749.  
  750. public enum TipAngajat {
  751. Ospatar,Bucatar
  752. }
  753. =========================
  754. STRATEGY
  755. import java.util.ArrayList;
  756.  
  757. public interface IProcesabil {
  758. OfertaMeniu alegereMeniu(ArrayList<OfertaMeniu> listaMeniuri);
  759. }
  760. --------------------
  761. import java.util.ArrayList;
  762.  
  763. public class MeniuRestaurant {
  764. private ArrayList<OfertaMeniu> listaMeniuri = new ArrayList();
  765. private IProcesabil strategieAlegere;
  766.  
  767. public void addOfertaMeniu(OfertaMeniu ofertaMeniu){
  768. this.listaMeniuri.add(ofertaMeniu);
  769. }
  770.  
  771. public void setStrategieAlegere(IProcesabil strategieAlegere){
  772. this.strategieAlegere = strategieAlegere;
  773. }
  774.  
  775. public OfertaMeniu alegereOferta(){
  776. if(strategieAlegere != null){
  777. return strategieAlegere.alegereMeniu(listaMeniuri);
  778. }
  779. else
  780. throw new UnsupportedOperationException();
  781. }
  782.  
  783. }
  784. -------------------
  785. public class OfertaMeniu {
  786. private String denumireMeniu;
  787. private int nrCalorii;
  788. private int nrCarbohidrati;
  789.  
  790. public OfertaMeniu(String denumireMeniu, int nrCalorii, int nrCarbohidrati) {
  791. this.denumireMeniu = denumireMeniu;
  792. this.nrCalorii = nrCalorii;
  793. this.nrCarbohidrati = nrCarbohidrati;
  794. }
  795.  
  796. public String getDenumireMeniu() {
  797. return denumireMeniu;
  798. }
  799.  
  800. public int getNrCalorii() {
  801. return nrCalorii;
  802. }
  803.  
  804. public int getNrCarbohidrati() {
  805. return nrCarbohidrati;
  806. }
  807.  
  808. @Override
  809. public String toString() {
  810. return "OfertaMeniu [denumireMeniu=" + denumireMeniu + ", nrCalorii="
  811. + nrCalorii + ", nrCarbohidrati=" + nrCarbohidrati + "]";
  812. }
  813.  
  814.  
  815. }
  816. -------------
  817.  
  818. import java.util.ArrayList;
  819.  
  820. public class StrategieCaloriiMinime implements IProcesabil{
  821.  
  822. @Override
  823. public OfertaMeniu alegereMeniu(ArrayList<OfertaMeniu> listaMeniuri) {
  824. OfertaMeniu ofertaMeniuCaloriiMinime = listaMeniuri.get(0);
  825. for(OfertaMeniu oferta: listaMeniuri){
  826. if(oferta.getNrCalorii() < ofertaMeniuCaloriiMinime.getNrCalorii())
  827. ofertaMeniuCaloriiMinime = oferta;
  828. }
  829.  
  830. return ofertaMeniuCaloriiMinime;
  831. }
  832.  
  833. }
  834. --------------------
  835. import java.util.ArrayList;
  836.  
  837. public class StrategieCarbohidratiMinim implements IProcesabil{
  838.  
  839. @Override
  840. public OfertaMeniu alegereMeniu(ArrayList<OfertaMeniu> listaMeniuri) {
  841. OfertaMeniu ofertaMeniuCarbohidratiMinim = listaMeniuri.get(0);
  842. for(OfertaMeniu oferta: listaMeniuri){
  843. if(oferta.getNrCarbohidrati() < ofertaMeniuCarbohidratiMinim.getNrCarbohidrati())
  844. ofertaMeniuCarbohidratiMinim = oferta;
  845. }
  846.  
  847. return ofertaMeniuCarbohidratiMinim;
  848. }
  849.  
  850. }
  851. ----------------------
  852. public class TestStrategy {
  853.  
  854. public static void main(String[] args) {
  855. MeniuRestaurant meniuRestaurant = new MeniuRestaurant();
  856.  
  857. //adaugare meniuri in meniu restaurant
  858. OfertaMeniu meniu1 = new OfertaMeniu("Meniu1", 750, 70);
  859. OfertaMeniu meniu2 = new OfertaMeniu("Meniu2", 500, 80);
  860. OfertaMeniu meniu3 = new OfertaMeniu("Meniu3", 650, 20);
  861. OfertaMeniu meniu4 = new OfertaMeniu("Meniu4", 800, 90);
  862.  
  863. meniuRestaurant.addOfertaMeniu(meniu1);
  864. meniuRestaurant.addOfertaMeniu(meniu2);
  865. meniuRestaurant.addOfertaMeniu(meniu3);
  866. meniuRestaurant.addOfertaMeniu(meniu4);
  867.  
  868. //alegere meniu nr calorii minim
  869. meniuRestaurant.setStrategieAlegere(new StrategieCaloriiMinime());
  870. System.out.println("Meniu cu minim calorii" + meniuRestaurant.alegereOferta());
  871.  
  872. //alegere meniu nr carbohidrati minim
  873. meniuRestaurant.setStrategieAlegere(new StrategieCarbohidratiMinim());
  874. System.out.println("Meniu cu minim carbohidrati" + meniuRestaurant.alegereOferta());
  875.  
  876. }
  877.  
  878. }
  879.  
  880. =====================
  881. FLYWEIGHT
  882. public class Bon implements IPrintabil{
  883. private TipPrintareBon tipPrintare;
  884. private int costTotal;
  885.  
  886. public Bon(TipPrintareBon tipPrintare) {
  887. this.tipPrintare = tipPrintare;
  888. }
  889.  
  890. public int getCostTotal() {
  891. return costTotal;
  892. }
  893.  
  894. public void setCostTotal(int costTotal) {
  895. this.costTotal = costTotal;
  896. }
  897.  
  898. public TipPrintareBon getTipPrintare() {
  899. return tipPrintare;
  900. }
  901.  
  902. @Override
  903. public void printeaza() {
  904. System.out.println("S-a printat un bon in format " +
  905. this.tipPrintare + " cu un cost total de " + this.costTotal);
  906. }
  907.  
  908. }
  909. ---------------
  910.  
  911. import java.util.HashMap;
  912.  
  913. public class BonFlyweightFactory {
  914. private static HashMap<TipPrintareBon, Bon> listaBonuri = new HashMap<>();
  915. private static int nrBonuriPrintate = 0;
  916.  
  917. public Bon getBon(TipPrintareBon tipPrintare){
  918. nrBonuriPrintate++;
  919. Bon bon = listaBonuri.get(tipPrintare);
  920. if(bon == null){
  921. System.out.println("\nS-a creat o matrita pentru formatul de bon " +
  922. tipPrintare);
  923. bon = new Bon(tipPrintare);
  924. listaBonuri.put(tipPrintare, bon);
  925. }
  926. return bon;
  927. }
  928.  
  929. public static int getNrBonuriPrintate(){
  930. return nrBonuriPrintate;
  931. }
  932.  
  933. public static int getNrMatriteBonuri(){
  934. return listaBonuri.size();
  935. }
  936. }
  937. -----------------
  938.  
  939.  
  940. public interface IPrintabil {
  941. void printeaza();
  942. }
  943.  
  944.  
  945. -------------------
  946.  
  947. public class TestFlyweight {
  948.  
  949. public static void main(String[] args) {
  950. BonFlyweightFactory bonFactory = new BonFlyweightFactory();
  951. TipPrintareBon[] tipuriPrintare = TipPrintareBon.values();
  952. int nrTipuriBon = TipPrintareBon.values().length;
  953. int random;
  954.  
  955. for (int i=1; i<=20; i++){
  956. random = (int) (Math.random() * nrTipuriBon);
  957. Bon bon = bonFactory.getBon(tipuriPrintare[random]);
  958. bon.setCostTotal(100 + 5*i);
  959. bon.printeaza();
  960. }
  961.  
  962. System.out.println("\nS-au printat " +
  963. BonFlyweightFactory.getNrBonuriPrintate() + " bonuri");
  964. System.out.println("S-au generat " +
  965. BonFlyweightFactory.getNrMatriteBonuri() + " matrite bonuri");
  966.  
  967. }
  968.  
  969. }
  970. -------------
  971. public enum TipPrintareBon {
  972. FORMAT1, FORMAT2, FORMAT3;
  973. }
  974.  
  975.  
  976. ==============
  977. TEMPLATE
  978. =========================
  979. public abstract class EvaluareDaune {
  980. abstract void identifyDamage();
  981. abstract void initialEvaluationDamage();
  982. abstract void sendEvaluationToManager();
  983.  
  984. public void procedureDamageEvaluation(){
  985. identifyDamage();
  986. initialEvaluationDamage();
  987. sendEvaluationToManager();
  988. }
  989. }
  990. ------------
  991. public class KitchenDamageEvaluation extends EvaluareDaune{
  992.  
  993. @Override
  994. void identifyDamage() {
  995. System.out.println("Identify damage");
  996. }
  997.  
  998. @Override
  999. void initialEvaluationDamage() {
  1000. System.out.println("Initial evaluation of the damage");
  1001. }
  1002.  
  1003. @Override
  1004. void sendEvaluationToManager() {
  1005. System.out.println("Send evaluation to the manager");
  1006. }
  1007.  
  1008.  
  1009. }
  1010. -----------
  1011. public class TestTemplate {
  1012.  
  1013. public static void main(String[] args) {
  1014. KitchenDamageEvaluation kitchenDamageEvaluation =
  1015. new KitchenDamageEvaluation();
  1016. System.out.println("Damage evaluation procedure");
  1017. kitchenDamageEvaluation.procedureDamageEvaluation();
  1018.  
  1019. }
  1020.  
  1021. }
  1022. =======================
  1023. COMMAND
  1024. public class Bucatar {
  1025. private String numeBucatar;
  1026.  
  1027. public Bucatar(String numeBucatar) {
  1028. this.numeBucatar = numeBucatar;
  1029. }
  1030.  
  1031. public void prelucreazaPizza(String tipPizza){
  1032. System.out.println("Bucatar a preparat pizza " + tipPizza);
  1033. }
  1034.  
  1035. public void prelucreazaPaste(String tipPaste){
  1036. System.out.println("Bucatar a preparat paste " + tipPaste);
  1037. }
  1038. }
  1039. -------------------------
  1040. public class ComandaPaste implements IComanda{
  1041.  
  1042. private Bucatar bucatar;
  1043. private String tipPaste;
  1044.  
  1045. public ComandaPaste(Bucatar bucatar, String tipPaste) {
  1046. this.bucatar = bucatar;
  1047. this.tipPaste = tipPaste;
  1048. }
  1049.  
  1050. @Override
  1051. public void prelucreaza() {
  1052. bucatar.prelucreazaPaste(tipPaste);
  1053. }
  1054.  
  1055. }
  1056. ------------
  1057. public class ComandaPizza implements IComanda{
  1058.  
  1059. private Bucatar bucatar;
  1060. private String tipPizza;
  1061.  
  1062. public ComandaPizza(Bucatar bucatar, String tipPizza) {
  1063. this.bucatar = bucatar;
  1064. this.tipPizza = tipPizza;
  1065. }
  1066.  
  1067. @Override
  1068. public void prelucreaza() {
  1069. bucatar.prelucreazaPizza(tipPizza);
  1070.  
  1071. }
  1072.  
  1073. }
  1074. --------------
  1075. public enum EComanda {
  1076. ComandaPizza,
  1077. ComandaPaste
  1078. }
  1079.  
  1080. ---------
  1081.  
  1082. public interface IComanda {
  1083. void prelucreaza();
  1084. }
  1085.  
  1086. ------------
  1087. import java.util.ArrayList;
  1088.  
  1089. public class Ospatar {
  1090. public ArrayList<IComanda> listaComenzi;
  1091.  
  1092. public Ospatar(){
  1093. listaComenzi = new ArrayList();
  1094. }
  1095.  
  1096. public void preiaComanda(IComanda comanda){
  1097. listaComenzi.add(comanda);
  1098. }
  1099.  
  1100. public void transmiteComenzile(){
  1101. for(IComanda c: listaComenzi)
  1102. c.prelucreaza();
  1103. listaComenzi.clear();
  1104. }
  1105. }
  1106. ----------------
  1107.  
  1108. public class TestCommand {
  1109.  
  1110. public static void main(String[] args) {
  1111. Bucatar bucatar = new Bucatar("Costache Marian");
  1112.  
  1113. Ospatar ospatar = new Ospatar();
  1114. ospatar.preiaComanda(new ComandaPizza(bucatar, "PizzaA"));
  1115. ospatar.preiaComanda(new ComandaPizza(bucatar, "PizzaA"));
  1116. ospatar.preiaComanda(new ComandaPaste(bucatar, "PasteB"));
  1117. ospatar.transmiteComenzile();
  1118.  
  1119. }
  1120.  
  1121. }
  1122. ====================
  1123. MEMENTOpublic class Contract {
  1124. private String clauzeContractuale;
  1125. private String numeClient;
  1126.  
  1127. public Contract(String numeClient) {
  1128. this.numeClient = numeClient;
  1129. this.clauzeContractuale = "";
  1130. }
  1131.  
  1132. public void adaugaClauzeContractuale(String clauza){
  1133. this.clauzeContractuale += "\n" + clauza;
  1134. }
  1135.  
  1136. @Override
  1137. public String toString() {
  1138. return "Contract [clauzeContractuale=" + clauzeContractuale
  1139. + ", numeClient=" + numeClient + "]";
  1140. }
  1141.  
  1142. public void refacereVersiuneContractAnterior(VersiuneContract versiuneContract){
  1143. this.clauzeContractuale = versiuneContract.getClauzeContractuale();
  1144. }
  1145.  
  1146. public VersiuneContract salvare(){
  1147. System.out.println("Salvare versiune contract");
  1148. return new VersiuneContract(clauzeContractuale);
  1149. }
  1150. }--------------
  1151. import java.util.ArrayList;
  1152.  
  1153. public class ManagerContracte {
  1154. private ArrayList<VersiuneContract> listaVersiuni = new ArrayList();
  1155.  
  1156. public void adaugaVersiune(VersiuneContract versiuneContract){
  1157. this.listaVersiuni.add(versiuneContract);
  1158. }
  1159.  
  1160. public VersiuneContract recuperareVersiune(int i){
  1161. if(listaVersiuni.get(i) != null)
  1162. return listaVersiuni.get(i);
  1163. else
  1164. return new VersiuneContract();
  1165. }
  1166. }
  1167.  
  1168. ------------------
  1169. public class TestMemento {
  1170.  
  1171. public static void main(String[] args) {
  1172. ManagerContracte managerContracte = new ManagerContracte();
  1173. Contract contract = new Contract("Client1");
  1174.  
  1175. //salvare versiuni contracte
  1176. contract.adaugaClauzeContractuale("Clauza1");
  1177. System.out.println(contract);
  1178. contract.adaugaClauzeContractuale("Clauza2");
  1179. System.out.println(contract);
  1180. managerContracte.adaugaVersiune(contract.salvare());
  1181.  
  1182. contract.adaugaClauzeContractuale("Clauza3");
  1183. System.out.println(contract);
  1184. managerContracte.adaugaVersiune(contract.salvare());
  1185.  
  1186. //recuperare versiuni anterioare
  1187. contract.refacereVersiuneContractAnterior
  1188. (managerContracte.recuperareVersiune(0));
  1189. System.out.println(contract);
  1190. }
  1191.  
  1192. }
  1193. -------------
  1194. public class VersiuneContract {
  1195. private String clauzeContractuale;
  1196.  
  1197. public VersiuneContract() {
  1198. this.clauzeContractuale = "";
  1199. }
  1200.  
  1201. public VersiuneContract(String clauzeContractuale) {
  1202. this.clauzeContractuale = clauzeContractuale;
  1203. }
  1204.  
  1205. public String getClauzeContractuale() {
  1206. return clauzeContractuale;
  1207. }
  1208.  
  1209. }
  1210. =======================
  1211. ADAPTER
  1212. public class AdapterClient extends EvaluareClientFirmaA
  1213. implements IEvaluareClientFirmaB{
  1214.  
  1215. public int costTotalEvenimente(Client client){
  1216. int costTotalEvenimente = 0;
  1217. for(int i=0; i<client.getNrEvenimente(); i++)
  1218. costTotalEvenimente += client.getCostEvenimente()[i];
  1219. return costTotalEvenimente;
  1220. }
  1221.  
  1222. @Override
  1223. public void analizaClientFirmaB(Client client) {
  1224. System.out.println("Metoda analiza client Firma B");
  1225. this.analizaClientFirmaA(costTotalEvenimente(client));
  1226.  
  1227. }
  1228. }
  1229.  
  1230. ------------------
  1231. public class Client {
  1232. private String numeClient;
  1233. private int nrEvenimente;
  1234. private int[] costEvenimente;
  1235.  
  1236. public Client(String numeClient, int nrEvenimente,
  1237. int[] costEvenimente) {
  1238. this.numeClient = numeClient;
  1239. this.nrEvenimente = nrEvenimente;
  1240. this.costEvenimente = costEvenimente;
  1241. }
  1242.  
  1243. public String getNumeClient() {
  1244. return numeClient;
  1245. }
  1246.  
  1247. public int getNrEvenimente() {
  1248. return nrEvenimente;
  1249. }
  1250.  
  1251. public int[] getCostEvenimente() {
  1252. return costEvenimente;
  1253. }
  1254.  
  1255. }
  1256. -------------------
  1257. public class EvaluareClientFirmaA implements IEvaluareClientFirmaA{
  1258.  
  1259. @Override
  1260. public void analizaClientFirmaA(int costTotalEvenimente) {
  1261. System.out.println("Metoda analiza client Firma A");
  1262. double procentDiscount = 0;
  1263.  
  1264. if(costTotalEvenimente > 1000)
  1265. procentDiscount = 0.10;
  1266. else
  1267. if(costTotalEvenimente >500)
  1268. procentDiscount = 0.05;
  1269. else procentDiscount = 0.00;
  1270. System.out.println("S-a oferit un discount de "+
  1271. procentDiscount);
  1272. }
  1273. }
  1274.  
  1275.  
  1276. ------------
  1277. public interface IEvaluareClientFirmaA {
  1278. void analizaClientFirmaA(int costTotalEvenimente);
  1279. }
  1280.  
  1281. -------------
  1282. public interface IEvaluareClientFirmaB {
  1283. void analizaClientFirmaB(Client client);
  1284. }
  1285.  
  1286. -----------
  1287. public class TestAdapter {
  1288.  
  1289. public static void main(String[] args) {
  1290. int[] costEvenimente = new int[]{1000,2000,20000,1000,5000};
  1291. Client client = new Client("XYZ", 5, costEvenimente);
  1292. IEvaluareClientFirmaB evaluareClientB = new AdapterClient();
  1293. evaluareClientB.analizaClientFirmaB(client);
  1294.  
  1295. }
  1296.  
  1297. }
  1298. ===================
  1299. PROTOTYPE
  1300.  
  1301. import java.util.ArrayList;
  1302.  
  1303. public class ContractCorporate extends ContractEveniment{
  1304.  
  1305. public ContractCorporate(){
  1306. System.out.println("Incarcare contract corporate");
  1307. listaClauze = new ArrayList<>(3);
  1308. this.tip = "corporate";
  1309. }
  1310.  
  1311. @Override
  1312. void printare() {
  1313. System.out.println("Contract de tip "+ this.tip);
  1314. }
  1315.  
  1316. }
  1317. ---------
  1318.  
  1319.  
  1320. import java.util.ArrayList;
  1321.  
  1322. public abstract class ContractEveniment implements Cloneable{
  1323. private String id;
  1324. protected String tip;
  1325. protected ArrayList<String> listaClauze;
  1326.  
  1327. public String showListaClauze(){
  1328. String rez = "Start ";
  1329. for(int i=0 ; i<listaClauze.size(); i++)
  1330. rez += listaClauze.get(i) + " ";
  1331. return rez;
  1332. }
  1333.  
  1334. public void modifListaClauze(int i, String clauzaNoua){
  1335. listaClauze.set(i, clauzaNoua);
  1336. }
  1337.  
  1338. abstract void printare();
  1339.  
  1340. public String getId() {
  1341. return id;
  1342. }
  1343.  
  1344. public void setId(String id) {
  1345. this.id = id;
  1346. }
  1347.  
  1348. public String getTip() {
  1349. return tip;
  1350. }
  1351.  
  1352. public ArrayList<String> getListaClauze() {
  1353. return listaClauze;
  1354. }
  1355.  
  1356. @Override
  1357. public String toString() {
  1358. return "ContractEveniment [id=" + id + ", tip=" + tip + "]";
  1359. }
  1360.  
  1361. @Override
  1362. public ContractEveniment clone()
  1363. {
  1364. Object clone = null;
  1365. try {
  1366. clone = super.clone();
  1367. } catch (CloneNotSupportedException e) {
  1368. e.printStackTrace();
  1369. }
  1370.  
  1371. return (ContractEveniment) clone;
  1372. }
  1373.  
  1374. }
  1375.  
  1376.  
  1377. ------------------
  1378.  
  1379.  
  1380. import java.util.ArrayList;
  1381.  
  1382. public class ContractParty extends ContractEveniment{
  1383.  
  1384.  
  1385. public ContractParty() {
  1386. System.out.println("Incarcare contract party");
  1387. listaClauze = new ArrayList<>();
  1388. listaClauze.add("clauza 1");
  1389. listaClauze.add("clauza 2");
  1390. this.tip = "party";
  1391. }
  1392.  
  1393. @Override
  1394. void printare() {
  1395. System.out.println("Contract de tip " + this.tip);
  1396. }
  1397.  
  1398. @Override
  1399. public ContractEveniment clone() {
  1400. ContractEveniment clone = super.clone();
  1401. clone.listaClauze = new ArrayList<>();
  1402. for(int i=0; i<this.listaClauze.size(); i++){
  1403. clone.listaClauze.add(this.listaClauze.get(i));
  1404. }
  1405.  
  1406. return clone;
  1407. }
  1408.  
  1409.  
  1410.  
  1411. }
  1412.  
  1413. --------------
  1414.  
  1415. import java.util.HashMap;
  1416.  
  1417. public class PrototypeFactory {
  1418. private static HashMap<String, ContractEveniment> prototipuriContracte = new HashMap<>();
  1419.  
  1420. static {
  1421. System.out.println("Initializare contracte");
  1422.  
  1423. ContractEveniment contractParty = new ContractParty();
  1424. prototipuriContracte.put("party", contractParty);
  1425.  
  1426. ContractEveniment contractCorporate = new ContractCorporate();
  1427. prototipuriContracte.put("corporate", contractCorporate);
  1428. }
  1429.  
  1430. public static ContractEveniment getPrototipContract(String id) {
  1431. ContractEveniment contractEveniment = null;
  1432. ContractEveniment prototipContract = prototipuriContracte.get(id);
  1433. if(prototipContract != null)
  1434. contractEveniment = prototipContract.clone();
  1435. return contractEveniment;
  1436. }
  1437. }
  1438.  
  1439. ------------------
  1440.  
  1441. public class TestPrototype {
  1442.  
  1443. public static void main(String[] args) {
  1444. ContractCorporate contractCorporate1 = new ContractCorporate();
  1445. contractCorporate1.setId("1");
  1446. System.out.println(contractCorporate1);
  1447.  
  1448. ContractCorporate contractCorporate2 = new ContractCorporate();
  1449. contractCorporate2.setId("2");
  1450. System.out.println(contractCorporate2);
  1451.  
  1452. ContractEveniment contractCorporate3 = PrototypeFactory.getPrototipContract("party");
  1453. if(contractCorporate3 != null) {
  1454. contractCorporate3.setId("3");
  1455. System.out.println(contractCorporate3);
  1456. }
  1457.  
  1458. System.out.println(contractCorporate3.showListaClauze());
  1459. contractCorporate3.modifListaClauze(0, "New");
  1460.  
  1461. ContractEveniment contractCorporate4 = PrototypeFactory.getPrototipContract("party");
  1462. if(contractCorporate4 != null){
  1463. contractCorporate4.setId("4");
  1464. System.out.println(contractCorporate4);
  1465. }
  1466. System.out.println(contractCorporate4.showListaClauze());
  1467.  
  1468. //testare shallow-copy fara Prototype
  1469. System.out.println("\nTestare shallow-copy fara Prototype");
  1470. if(contractCorporate1.getListaClauze() == contractCorporate2.getListaClauze())
  1471. System.out.println("Aceleasi clauze contractuale");
  1472. else
  1473. System.out.println("Referinte la obiecte diferite");
  1474.  
  1475. //testare shallow-copy cu Prototype
  1476. System.out.println("Testare shallow-copy cu Prototype");
  1477. if(contractCorporate3.getListaClauze() == contractCorporate4.getListaClauze())
  1478. System.out.println("Aceleasi clauze contractuale");
  1479. else
  1480. System.out.println("Referinte la obiecte diferite");
  1481.  
  1482. }
  1483.  
  1484. }
  1485. =======================
  1486. BUILDER
  1487.  
  1488. public class Bucatar {
  1489. private PizzaBuilder pizzaBuilder;
  1490.  
  1491. public void setPizzaBuilder(PizzaBuilder pizzaBuilder) {
  1492. this.pizzaBuilder = pizzaBuilder;
  1493. }
  1494.  
  1495. public Pizza getPizza(){
  1496. return pizzaBuilder.getPizza();
  1497. }
  1498.  
  1499. public void construiestePizza(){
  1500. pizzaBuilder.createPizza();
  1501. pizzaBuilder.buildBlat();
  1502. pizzaBuilder.buildSos();
  1503. pizzaBuilder.buildTopping();
  1504. }
  1505. }
  1506.  
  1507.  
  1508. ---------------
  1509. public class ConcreteBuilder1 extends PizzaBuilder{
  1510.  
  1511. @Override
  1512. void buildBlat() {
  1513. pizza.setBlat("Blat basic");
  1514. }
  1515.  
  1516. @Override
  1517. void buildSos() {
  1518. pizza.setSos("dulce");
  1519. }
  1520.  
  1521. @Override
  1522. void buildTopping() {
  1523. pizza.setTopping("branza, rosii");
  1524. }
  1525.  
  1526. }
  1527.  
  1528. ------------------
  1529. public class ConcreteBuilder2 extends PizzaBuilder{
  1530.  
  1531. @Override
  1532. void buildBlat() {
  1533. pizza.setBlat("Blat basic");
  1534. }
  1535.  
  1536. @Override
  1537. void buildSos() {
  1538. pizza.setSos("dulce, iute");
  1539. }
  1540.  
  1541. @Override
  1542. void buildTopping() {
  1543. pizza.setTopping("branza, rosii, ardei, sunca");
  1544. }
  1545. }
  1546. ---------------
  1547. public class Pizza {
  1548. //componente obiect complex
  1549. private String blat = "";
  1550. private String sos = "";
  1551. private String topping = "";
  1552.  
  1553. public void setBlat(String blat) {
  1554. this.blat = blat;
  1555. }
  1556.  
  1557. public void setSos(String sos) {
  1558. this.sos = sos;
  1559. }
  1560.  
  1561. public void setTopping(String topping) {
  1562. this.topping = topping;
  1563. }
  1564.  
  1565. @Override
  1566. public String toString() {
  1567. return "Pizza [blat=" + blat + ", sos=" + sos + ", topping=" + topping
  1568. + "]";
  1569. }
  1570.  
  1571. }
  1572. --------------
  1573. public abstract class PizzaBuilder {
  1574. //obiectul care trebuie creat
  1575. protected Pizza pizza;
  1576.  
  1577. public Pizza getPizza(){
  1578. return this.pizza;
  1579. }
  1580.  
  1581. public void createPizza(){
  1582. pizza = new Pizza();
  1583. }
  1584.  
  1585. /*metode abstracte pentru a fi particularizate concret
  1586. in Builder Concrete
  1587. */
  1588. abstract void buildBlat();
  1589. abstract void buildSos();
  1590. abstract void buildTopping();
  1591. }
  1592.  
  1593.  
  1594. --------------
  1595. public class TestBuilder {
  1596.  
  1597. public static void main(String[] args) {
  1598. Bucatar bucatar = new Bucatar();
  1599. PizzaBuilder pb1 = new ConcreteBuilder1();
  1600. PizzaBuilder pb2 = new ConcreteBuilder2();
  1601. bucatar.setPizzaBuilder(pb1);
  1602. bucatar.construiestePizza();
  1603.  
  1604. Pizza pizza1 = bucatar.getPizza();
  1605. bucatar.setPizzaBuilder(pb2);
  1606. bucatar.construiestePizza();
  1607. Pizza pizza2 = bucatar.getPizza();
  1608.  
  1609. System.out.println("Concrete Builder 1");
  1610. System.out.println(pizza1 + "\n" + pizza2);
  1611.  
  1612. bucatar.setPizzaBuilder(pb2);
  1613. bucatar.construiestePizza();
  1614.  
  1615. Pizza pizza3 = bucatar.getPizza();
  1616. System.out.println("\nConcrete Builder 2");
  1617. System.out.println(pizza3);
  1618. }
  1619.  
  1620. }
  1621. ===================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement