From: Arlo L. <ar...@ar...> - 2009-06-10 18:01:26
|
Hi folks, I'm doing my first project with a fully object-oriented approach and I have a question about how you all would break the code apart. Let's say I have a social networking site where members can upload photos, and I want to display a particular member's photos. One approach is to have a Member object, with a method getPhotos, that returns the IDs of the photos that belong to that member; and to have a Photo object, with a method getDetails, that returns the details for a given photo. In order to display a member's photos, I would first call getPhotos for the member, then call getDetails for each of the returned photos. This makes sense from an encapsulation perspective, but it seems wasteful because I'd have one initial database query plus an additional query for each photo. I could build getDetails so that it can take a list of IDs and return the details for all the photos at once, and then I'd just have two queries. Or I could build a getPhotosByMember method that accepts a member ID as an argument and returns the details for all the photos belonging to that member. Then I'd be down to one query, but I would probably end up building several similar methods (e.g., getRecentPhotos) that would have redundant code. What would you say is the normal or accepted way to structure this? Thanks, -Arlo _______________________________ Arlo Leach 773.769.6106 http://arlomedia.com |