From: Paul Brannan Date: 2001-10-10T03:12:41+09:00 Subject: [ruby-talk:22327] include vs. extend The recent talk about mixins recently has made me curious. I have a collection of about 15 mixins that currently get included, in various combinations, in 5 different classes. Right now, I'm doing something like this: class Foo include M1 include M2 include M3 include M4 end But it's also possible to do something like this: class Bar def initialize extend M1 extend M2 extend M3 extend M4 end end Both solutions seem to work equally well; if I add a new method to M4, for example, then the method gets added to all existing objects of Foo and Bar. The first solution seems to be MUCH faster if a lot of objects are created/destroyed. The second solution seems to be a LITTLE faster if there is one object, but many calls to methods in M1..M4. 1) Is there any other solution that gives me a better tradeoff in terms of speed? 2) What are some advantages/disadvantages to each solution that I have not considered? Paul