2009-11-05 5 views
0

Je suis en train de concevoir un petit système pour analyser les flux RSS, et j'ai deux classes: Feed et FeedItem. Les flux ont FeedItems et FeedItems ont des flux parents. Serait-il un mauvais modèle pour donner la classe FeedItem un membre parent d'alimentation:Modèle de composition circulaire avec les classes RSS Feed et FeedItem

public Feed ParentFeed { get; set; } 

pour que je puisse faire:

// get the latest item from the latest feed, then print its parent feed name 
FeedItem item = Feeds.GetLatest().Item[0]; 
Response.Write(item.ParentFeed.Name + ": " + item.Title); 

ou devrais-je ne jamais obtenir un FeedItem grâce à son alimentation mère, à éviter cette référence circulaire entre ces deux classes?

Répondre

0

Si vous avez vraiment besoin du parent, vous pouvez le stocker en tant que object. Il serait nécessaire si vous pouvez obtenir un FeedItem par un autre chemin que de la Feed et devez accéder à la Feed. Cependant, ce n'est pas particulièrement élégant.

Ceci est généralement effectué dans les cas où il peut y avoir différents types d'objets parents.

0

Pourquoi votre interlocuteur ne stocke-t-il pas simplement la référence dans le flux?

Feed latest = Feeds.GetLatest(); 
FeedItem item = latest.Item[0]; 
Response.Write(latest.Name + ": " + item.Title); 

Edit: Personnellement, il faut éviter la référence circulaire, si possible, mais je suppose que c'est juste une question de goût !?