Visualizzazione dei risultati da 1 a 9 su 9

Hybrid View

  1. #1
    Il programma era partito con lo scopo di confrontare il totale calcolato in modo "tradizionale" e col pattern Visitor, poi ho pensato di modificarlo togliendo il calcolo del totale "tradizionale" e aggiungendo alla modalità col pattern l'elenco degli elementi acquistati.
    Nel main ci sarebbe infatti anche
    codice:
    System.out.println("Totale = " + carrello.getTotale());
    Carrello.java eccolo qua:
    codice:
    import java.util.List;
    import java.util.ArrayList;
    
    
    class Carrello {
        private List<ElementiCarrello> elementi;
        
        public Carrello() {
            elementi = new ArrayList<>();
        }
        
        public void add(ElementiCarrello elemento) {
            elementi.add(elemento);
        }
        
        // funziona ma poco "realistico", si complica se si vogliono introdurre offerte su alcuni tipi di articoli
        public double getTotale() {
            double totale = 0.0;
            for (ElementiCarrello e : elementi) {
                totale += e.getPrezzo(); // da Libro.java e DVD.java
            }
            return totale;
        }
        
        public List<ElementiCarrello> getElementi() {
            return elementi;
        }
    }
    Il pattern non c'entra col problema, infatti nel titolo della discussione parlo dell'add() di ArrayList.
    Il pattern è stato il pretesto per produrre questo codice, il discorso pattern sarebbe esaurito se riuscissi a passare i titoli oltre ai prezzi.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Gas75 Visualizza il messaggio
    Il programma era partito con lo scopo di confrontare il totale calcolato in modo "tradizionale" e col pattern Visitor, poi ho pensato di modificarlo togliendo il calcolo del totale "tradizionale" e aggiungendo alla modalità col pattern l'elenco degli elementi acquistati.
    Ok ma forse non mi sono spiegato bene.

    Nel main fai:
    codice:
            Libro libro = new Libro("Il segno del comando", 7.99);
            DVD dvd = new DVD("Il mistero dei Templari", 12.10);
            Carrello carrello = new Carrello();
            carrello.add(libro);
            carrello.add(dvd);

    Quindi ora i due articoli li stai aggiungendo nell'oggetto Carrello.
    codice:
            CarrelloTotale carrelloTotale = new CarrelloTotale(carrello);
            carrelloTotale.getTitoli();
            System.out.println("Totale = " + carrelloTotale.getTotale());

    Qui stai passando il Carrello al CarrelloTotale. Ma attenzione, come dicevo prima, il Carrello NON LO USI (perlomeno per quanto ho visto postato) in CarrelloTotale.
    Quindi i visita() di CarrelloTotale NON sono stati invocati, pertanto il getTotale() non può trovare nulla.

    E comunque questa dualità Carrello e CarrelloTotale non ha molto senso ...
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.