Quote:
Originariamente inviato da Ikon O'Cluster
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.