Sorry for the double post<br><br>---------- Forwarded message ----------<br><span class="gmail_quote">From: <b class="gmail_sendername">Matthieu Brucher</b> <<a href="mailto:matthieu.brucher@gmail.com">matthieu.brucher@gmail.com
</a>><br>Date: 15 nov. 2007 23:38<br>Subject: Re: Python Design Patterns - composition vs. inheritance<br>To: "<a href="mailto:snewman18@gmail.com">snewman18@gmail.com</a>" <<a href="mailto:snewman18@gmail.com">
snewman18@gmail.com</a>><br><br></span><br><br><div><span class="gmail_quote">2007/11/15, <a href="mailto:snewman18@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">snewman18@gmail.com</a>
 <<a href="mailto:snewman18@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">snewman18@gmail.com</a>>:</span><span class="q"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

In learning about design patterns, I've seen discussion about using<br>inheritance when an object's relationship to another object is 'is-a'<br>and composition when the relationship is 'has-a'.</blockquote>
</span>
</div><br>Another way to express this is to say :<br>- inheritance when you want to reuse an interface<br>- compositon when you want to reuse the implementation<br>IIRC this is the approach of Bruce Eckel.<br clear="all">

<br>Matthieu<br><span class="sg">-- <br>French PhD student<br>Website : <a href="http://miles.developpez.com/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://miles.developpez.com/</a><br>Blogs : 
<a href="http://matt.eifelle.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://matt.eifelle.com</a> and <a href="http://blog.developpez.com/?blog=92" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">

http://blog.developpez.com/?blog=92</a><br>LinkedIn : <a href="http://www.linkedin.com/in/matthieubrucher" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://www.linkedin.com/in/matthieubrucher
</a>
</span><br clear="all"><br>-- <br>French PhD student<br>Website : <a href="http://miles.developpez.com/">http://miles.developpez.com/</a><br>Blogs : <a href="http://matt.eifelle.com">http://matt.eifelle.com</a> and <a href="http://blog.developpez.com/?blog=92">
http://blog.developpez.com/?blog=92</a><br>LinkedIn : <a href="http://www.linkedin.com/in/matthieubrucher">http://www.linkedin.com/in/matthieubrucher</a>