Point taken on having containers of objects within an object. There are numerous patterns and designs for OO construction. I think we would all benefit if we could see a real world example explained. I have been trying to read some OO literature but it is always too theoretical or overloaded, I think it would be great to have a book that takes real world scenario's explains them, shows the model and identifies each scenario's pitfalls and benefits. Cheers Graeme Matthew Analyst Programmer Mercer Investment Consulting Level 29, 101 Collins Street, Melbourne, VIC, 3001, Australia Tel - 61 3 9245 5352 Fax - 61 3 9245 5330 visit http://www.merceric.com -----Original Message----- From: MikkelFJ [mailto:mikkelfj-anti-spam / bigfoot.com] Sent: Friday, 20 September 2002 9:39 To: ruby-talk / ruby-lang.org Subject: Re: Business Objects > > Now we could adapt our Invoice class to contain an Orders attribute which is > an array of Order business objects. I will not say this is necessarily the wrong approach, but it is a pitfall in OO design: You have orders and invoices hence you necessarily have order and invoice objects. But it might be the orders and invoices were better off as database records and what you really need is an order-processing object and an invoice archiver object. The real inherent objects in the problem being solved are not always obvious and it is an art to figure them out. There has been written much litterature on how you can harvest good objects and weed out bad objects using different strategies. I'm not convinced how well it works following such strategies as written in a book - but one should seek to find the nature of the problem somehow - and I guess the best approach is rather individual. Mikkel __ ********************************************** This e-mail and any attachments may be confidential or legally privileged. If you received this message in error or are not the intended recipient, you should destroy the e-mail message and any attachments or copies, and you are prohibited from retaining, distributing, disclosing or using any information contained herein. Please inform us of the erroneous delivery by return e-mail. Thank you for your cooperation. ********************************************** ec03/04