What you describe sounds perfectly fine. You might want to consider exposing the actual IArticleProjectRelation object eventually if you decide to hang other attributes to it, say a 'start date'.
Cheers, Leo Em Qua, 2006-07-12 às 00:40 +0200, Achim Domma escreveu: > Leonardo Rochael Almeida wrote: > > > In usual Object Oriented modeling, an n:m relationship is usually > > modeled as a collection of relationship objects each one keeping one > > direct reference to each side of the relationship. Of course, using > > these systems that already try to model relationships helps you not to > > reinvent another wheel. > > I think I understand. So if I would like to reinvent another wheel, just > for the educatinal purpose, I should do it like this: > > If I have IArticle and IProject which should have a relationship, I > would introduce IArticleProjectRelation which holds a reference to the > related objects. These relation objects will be managed by an > IArticleProjectRelationManager which has an interface like: > > relate(article,project) > unrelate(article,project) > get_related_articles(project) > get_related_projects(article) > > In that case, IArticleProjectRelation would be an implementation detail > of IArticleProjectRelationManager and I do not have to expose it at all. > And in Zope 3 terms, I would implement the manager as a local utility. > Right so far? > > If yes, I could add helper methods to IArticle and IProject which > encapsulate the access of the utility to hide this detail from the user. > Would you do that? Or has it some drawbacks which I don't see yet? > > thanks for your help, > > Achim > _______________________________________________ > Zope3-users mailing list > Zope3firstname.lastname@example.org > http://mail.zope.org/mailman/listinfo/zope3-users -- Leonardo Rochael Almeida Enfold Systems http://www.enfoldsystems.com phone. +1.713.942.2377 Ext 215 fax. +1.832.201.8856 _______________________________________________ Zope3-users mailing list Zope3email@example.com http://mail.zope.org/mailman/listinfo/zope3-users