View Single Post
Old 04-09-2009, 19:03   #7
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da Ikon O'Cluster Guarda i messaggi
Quello che voglio è che solo Lavorazione possa effettuare lavorazioni su Prodotto.
E se lavorazione la definisci come un "ProductProcessing" che deriva da Product tramite ereditarietà privata?
A questo punto hai accesso a tutti i metodi protected.
Dopotutto è un altro modo per rappresentare la composizione di oggetti, come l'avevi fatta te, solo che il legame diventa più stretto e sei sicuro che non si possa casta un ProductProcessing a Product

Quote:
Una volta finita la lavorazione chi ottiene prodotto con estrai() non può più lavorarci sopra.
Come sopra, rispetteresti il requisito, in quanto un oggetto Product non è modificabile se non da ProductProcessing.

Quote:
Ma anche chi maneggia Lavorazione non deve poter arbitrariamente operare su Prodotto. In particolare non deve toccare i timeX e quindi invocare la tick(). Perlomeno deve poterci operare solo se effettua una acquisisci() o altre funzioni che richiamano trasformazione().
Idem come sopra, non puoi lavorare su un oggetto Product, ma lo fai solo tramite i metodi pubblici di ProductProcessing.

Ultima modifica di tomminno : 04-09-2009 alle 19:06.
tomminno è offline   Rispondi citando il messaggio o parte di esso