From: Eli Bendersky Date: 2007-06-16T06:20:13+09:00 Subject: Re: Abstract interfaces as a means of documentation > 4) Create a Module and document the method in the module, and then > include that module in each class. Similar to your abstract class, but > solves the problems of instantiation, and allows you to mix in methods > along various axes. > > module JumpingClimbingPlayer > # docs here > def jump > raise "You should implement this per player" > # or maybe implement the common technique > end > > # same for climb > end > > class FooTypePlayer > include JumpingClimbingPlayer > def jump > # specific implementation here > end > end Is this really different from declaring JumpingClimbingPlayer as a class and inheriting the concrete classes from it, like: class FooTypePlayer < JumpingClimbingPlayer ?