2011-09-21 14 views
5

Data la seguente rappresentazione UML, come posso ottenere un'istanza di BullDog, che ha solo metodi getter esposti?Produzione di una copia di sola lettura di una classe, howto

  • L'istanza di BullDog non deve avere nessuno dei metodi di impostazione disponibili.
  • grado delle BullDog dovrebbe avere solo metodi getter (3 di essi) disponibili

In sostanza la domanda è .. cosa ho lanciato new BullDog a?

enter image description here

+0

btw ... cosa succede se myDog.getMetabolism() torna come qualcosa di "malsano". Il tuo nome di interfaccia sarà in qualche modo contro-intuitivo – Shawn

+0

e perché solo gli animali sani possono ottenere il metabolismo ?? Sicuramente tutti gli animali domestici possono restituire un tasso di metabolismo e solo allora è possibile determinare la salute. –

risposta

4

Dal HealthyPet e Pet sono estranei non c'è niente che può lanciare a che vi darà tutti i 3 metodi getter (getMetabolism(), getName() e getAge()). Ora se HealthyPet ha esteso Pet (e non sono davvero sicuro del motivo per cui non lo fa) saresti in affari. Perché poi potresti trasmettere a HealthyPet, restituire quell'interfaccia, e un chiamante vedrebbe solo i 3 metodi getter (ovviamente parlo senza un'introspezione di fantasia che dovrebbe consentire loro di scoprire tutto).

+0

Eccellente. Grazie Signore! – JAM

1

Hai bisogno di HealthyPet per estendere l'animale domestico. Quindi lanci l'istanza BullDog su HealthyPet.

Problemi correlati