Sto provando a utilizzare la composizione in una mia classe Entity
. Finora, un'entità "è" Displayable
(ereditato da un ABC) e "ha" un Position
(contiene una classe puntuale). So che vorrò che la mia Entity "abbia" un / qualche stato di salute, così ho iniziato a definire una classe Health
da comporre in Entity
. È stato comunque semplicistico e ha finito per contenere solo 2 metodi: hurt
e heal
che modifica il suo singolo campo: hp
.
Se avessi intenzione di ereditare da Health
, immagino che questo sarebbe OK, in quanto non richiederebbe alcun file standard all'interno di Entity
; erediterebbe i metodi.
Se devo scrivere con esso, quindi per me a hurt
a Entity
, dovrò indirizzare la chiamata di hurt
/ heal
al loro membro Health
e chiamarli proprio metodo hurt
/ heal
. Con una classe così semplice, questo significa che praticamente ho tutti i metodi di Health
duplicati in Entity
.
In un caso come questo, c'è qualche punto nel definire Health
? L'alternativa più semplice sarebbe semplicemente dare un campo Entity
a hp
e dargli i metodi hurt
e heal
direttamente.