From: Richard L. <ce...@l-...> - 2009-06-10 19:10:41
|
PS Person, Photo, Details are the obvious Objects to use. Obvious does not always equal Right. :-) Keep an open mind about using People and Albums as objects, and the details within are just an array, particularly if you expect to be dealing with a LOT of people in any single page. Or even something even more non-obvious. I've often found in OOP that after I write the whole thing in the obvious way, and then really sit down and Zen on it for a long time, that if I had just looked at it all "sideways" from the get-go, a much better/cleaner OOP hierarchy would have come out... But there's no easy way to do that until you've figured out your entire Feature Set and spent a LOT of time thinking about what you really want to do. On Wed, June 10, 2009 12:33 pm, Arlo Leach wrote: > 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 > > > > > ------------------------------------------------------------------------------ > Crystal Reports - New Free Runtime and 30 Day Trial > Check out the new simplified licensing option that enables unlimited > royalty-free distribution of the report engine for externally facing > server and web deployment. > http://p.sf.net/sfu/businessobjects > _______________________________________________ > chiPHPug-discuss mailing list > chi...@li... > https://lists.sourceforge.net/lists/listinfo/chiphpug-discuss > -- Some people ask for gifts here. I just want you to buy an Indie CD for yourself: http://cdbaby.com/search/from/lynch |