"Scott R. Godin" writes: [snip disucssion of iheriting from a mailing class]
> >what would I like to do with the Subscriber? > > o send them a welcome mailing > o snailmail - add them to tommorow's list of mailing labels along >with a marker to the correct template > o e-mail - send them a greeting using the welcome template > o add them to a database > o retrieve them from a database > o based on certain criterion, send them monthly mailings of special >events > o based on certain criterion, send them coupons on birthday or >anniversary But that doesn't mean you inherit from an address label printing class, an emailing class, a database class, a special events class and a birthday and anniversary class. You simply use such classes to perform each task. Now, some classes have APIs such that you have to subclass in order to use them (many XML parser classes for example) but emailing classes tend not to. When you want to send an email you create the email object populate the address, subject, body, etc. and call the method that send the email. I suspect this is off topic, it's standard OO methodology - the same as in java, python, C++, <insert favourite OO language here>. Only inherit when you have an ISA relationship. You don't seem to, you just want to use the API of a class - after all you could use a non-OO email module in the same way... Are you planning on inheriting from DBI in order to get database functionality? -- Sam Holden