Domanda OOP per catalogo prodotti

2

Ho una domanda che mi infastidisce da qualche giorno. Ho creato un webshop per un mio buon amico. Il problema è che ho una domanda di classe OOP.

Le persone possono acquistare alcuni vestiti nel negozio. Il problema sorge come mostrare informazioni diverse per prodotti diversi?

Quello che ho ora è il seguente:

  • abstract Classe del prodotto
  • Cloth estende il prodotto
  • I pantaloni estendono il prodotto

Il problema è che i pantaloni possono contenere informazioni extra come:

  • tipo di fibra
  • struttura

Come posso mostrare quelle informazioni nel negozio? Richiedo tutti i prodotti e ricevo la classe Prodotto con solo il prezzo e il nome di vendita? Qual è il modo corretto per capire che è un pantalone per mostrare quelle informazioni come la struttura in fibra nella pagina dei dettagli?

    
posta test 21.02.2013 - 09:01
fonte

1 risposta

0

Se stai usando le tecnologie jsp o jsf, non devi sapere in anticipo quali getter e setter hanno un oggetto prima di accedervi come bean. Tuttavia, comprensibilmente, potresti voler offrire visualizzazioni alternative per questi articoli.

Quindi, in generale, il mio approccio sarebbe quello di stabilire un tipo di enumeratore che tutte le classi del prodotto devono restituire in un metodo astratto. Il metodo sarebbe derivato da tutti i suoi figli e ti darà un indicatore di che tipo hai a che fare e puoi gestirlo di conseguenza. In altre parole, se il tuo oggetto corrente ha tipo "Pantaloni", allora includi una vista per quell'oggetto chiamato views / Trousers.xhtml. In alternativa, anziché restituire un enumeratore, è possibile restituire la vista effettiva per quell'oggetto (fare attenzione poiché due tipi di prodotto potrebbero condividere la stessa vista, ad esempio Jeans + Pantaloni, quindi non utilizzarlo come indicatore di tipo).

Nella vista, si sa che l'oggetto ha già incontrato una condizione preliminare che è di un certo tipo o che ha esplicitamente indicato quella particolare vista. A quel punto, puoi tranquillamente chiamare le proprietà di quell'oggetto che sai che avrà.

Spero che risponda alla tua domanda.

Modifica :

Potrebbe non adattarsi bene a seconda del numero di prodotti e della frequenza con cui devi modificare questi prodotti. In tal caso, ti consiglio di restituire un indicatore di stringa. Con quella stringa, puoi stabilire alcuni pattern come usare una vista con lo stesso indicatore di stringa, ecc. Potresti usare il nome della classe come un indicatore di tipo, se non altrimenti sovrascritto nelle tue classi derivate.

    
risposta data 21.02.2013 - 09:16
fonte

Leggi altre domande sui tag