i know wanna sounds stupid listen:
i have abstract classes entity
, player
(extends entity
) , non-abstract classes testplayer
(extends player
) , testmob
(extends entity
).
now facing following problem:
i want implement abstract methods in entity
same functionality inside testplayer
, testmob
. theoretically create class testentity
(extending entity
) , make testplayer
, testmob
inherit it. testplayer
couldn't inherit player
anymore.
implementing functionality directly inside entity
not option isn't intended sub-classes have functionality.
what considered acceptable solution other having duplicate code?
you use decorator pattern (https://en.wikipedia.org/wiki/decorator_pattern). have interface entity
, 2 classes implementing it: concreteentity
, decorator
, concreteentity
has default logic , decorator
has reference entity
, delegates method invocations. can extend decorator
. instead of new testplayer()
, have new player(new testentity(new concreteentity)))
Comments
Post a Comment