story
from abc import ABCMeta
class PhysicsobjectMixin(ABCMeta):
@abstractmethod
def update_physics(self):
pass
@abstractmethod
def apply_konckback(self, force):
pass
@abstractmethod
def get_position(self):
pass
class FightMixin(ABCMeta):
@abstractmethod
def attack(self):
pass
@abstractmethod
def defend(self):
pass
class TalkMixin(ABCMeta):
@abstractmethod
def say_something(self):
pass
class Character(PhysicsobjectMixin, FightMixin, TalkMixin):
def update_physics(self):
pass
def apply_konckback(self, force):
pass
def get_position(self):
pass
def attack(self):
pass
def defend(self):
pass
def say_something(self):
pass
class Pickup(PhysicsobjectMixin):
def update_physics(self):
pass
def apply_konckback(self, force):
pass
def get_position(self):
pass
class Projectile(PhysicsobjectMixin):
def update_physics(self):
pass
def apply_konckback(self, force):
pass
def get_position(self):
pass
This is not DRY at all. I like mixins much better.