How about we start with some diagrams? The attached diagram is a very rough first pass at one way of tackling the problem. It treats each of the actors (contact, newsletter, group) as separate entities and then uses the Manager to deal with their interactions.
This sounds like a candidate for some breeze-time :) Roland -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Nando Sent: Friday, July 22, 2005 1:27 PM To: [email protected] Subject: [CFCDev] Managers I'm quoting Jared here: *classically "manager" is not the same as "factory" - managers maintain the state of their composed members, factories just create them and hand them back to the caller* The part i'm interested is "managers maintain the state of their composed members". Practically, here's the situation i'm looking at. I have a visual mockup in front of me. It's a multistep process that essentially allows a user to add/edit a Contact. There's the usual names, address, phone, etc in there. Then, the Contact can optionally belong to a Group - or several Groups. So there's a series of checkboxes there with the Group names. That's pretty simple The Contact can also be put on a Campaign (a series of emails) or several Campaigns. Now here, although a campaign as a series of emails in itself doesn't change per contact recieving the Campaign, there are properties involved that do or can change - startingDate, frequency, designTemplate for instance. The Contact can also receive a Newsletter. At the moment, there's only one Newsletter and either they receive it or they don't - but there's talk in the air of the possibility of multiple Newsletters. I know for sure there's composition in the air. How would you approach modelling this if you had more OO experience than i do? How could a manager help make sense of these somewhat complex relationships? I always hit a foggy patch whenever i run across what seems like it should be a simple case of composition. It can be hard to tell who should be composed into whom. Any help here would be appreciated. thanks, Nando ---------------------------------------------------------- You are subscribed to cfcdev. To unsubscribe, send an email to [email protected] with the words 'unsubscribe cfcdev' as the subject of the email. CFCDev is run by CFCZone (www.cfczone.org) and supported by CFXHosting (www.cfxhosting.com). CFCDev is supported by New Atlanta, makers of BlueDragon http://www.newatlanta.com/products/bluedragon/index.cfm An archive of the CFCDev list is available at www.mail-archive.com/[email protected] ---------------------------------------------------------- You are subscribed to cfcdev. To unsubscribe, send an email to [email protected] with the words 'unsubscribe cfcdev' as the subject of the email. CFCDev is run by CFCZone (www.cfczone.org) and supported by CFXHosting (www.cfxhosting.com). CFCDev is supported by New Atlanta, makers of BlueDragon http://www.newatlanta.com/products/bluedragon/index.cfm An archive of the CFCDev list is available at www.mail-archive.com/[email protected]
Contacts_UML.gif
Description: GIF image
