On Wednesday 20 Jun 2007, Jonathon Stierman wrote:
> So what's the reasoning behind the dislike of circular dependencies?  From
> what I can tell, they're unavoidable in my case...

I think it's because it means you've not seperated the concerns / layers of 
abstraction correctly. 

> :( But I don't see any way around it, unless I wanted to live with sloppy

Why not inject both Domains and DomainEmails into a DomainManager ? The 
Manager then:
* deleteADomain(aDom) 
        call Domains.delete(aDom) 
        call DomainEmails.deleteAllEmailsForDomain(aDom)
* createADomainEmail(aRec)
        call Domains.get(aRec)
        if present
                call DomainEmails.add(aRec)

This also neatly seperates your buisness rules (what needs to be done and in 
what order) from your actual operation logic.

-- 
Tom Chiverton
Helping to continuously promote essential designs
on: http://thefalken.livejournal.com

****************************************************

This email is sent for and on behalf of Halliwells LLP.

Halliwells LLP is a limited liability partnership registered in England and 
Wales under registered number OC307980 whose registered office address is at St 
James's Court Brown Street Manchester M2 2JF.  A list of members is available 
for inspection at the registered office. Any reference to a partner in relation 
to Halliwells LLP means a member of Halliwells LLP. Regulated by the Law 
Society.

CONFIDENTIALITY

This email is intended only for the use of the addressee named above and may be 
confidential or legally privileged.  If you are not the addressee you must not 
read it and must not use any information contained in nor copy it nor inform 
any person other than Halliwells LLP or the addressee of its existence or 
contents.  If you have received this email in error please delete it and notify 
Halliwells LLP IT Department on 0870 365 8008.

For more information about Halliwells LLP visit www.halliwells.com.


Reply via email to