FROM : Lars von Wedel
DATE : Mon Apr 30 08:59:45 2007
Dear Sam,
> We have a hierarchy of objects, each having a
> list of lower-level objects, i.e.:
>
> Course -> Session -> Segment -> Scene -> Shot -> Layer -> Shape ->
> ContentProperties
>
> Does it make sense, a la MailDemo, to subclass these from a
> common class
> having only two instance variables, i.e., an (NSMutableArray*)
> sublist and an
> (NSMutableDictionary*)properties, the latter of which would be
> individually
> initialized with all the keyed properties associated with the
> particular
> subclass? Or maybe even just use one class with individual
> initializers?
From my past experiences (which are not Cocoa) I would not recommend
to artificially flatten such class hierarchies. Having just one class
to actually represent a number of different concepts will prevent (or
at least make it very tedious) to define methods particular for each
concept. I cannot see why this should be any different in Cocoa/
Objective-C.
What might be useful though is to a have an abstract superclass that
permits access to common things like a label, the set of children etc.
As Matt pointed out, you might want to take a look at CoreData which
simplifies development of such applications.
Lars
DATE : Mon Apr 30 08:59:45 2007
Dear Sam,
> We have a hierarchy of objects, each having a
> list of lower-level objects, i.e.:
>
> Course -> Session -> Segment -> Scene -> Shot -> Layer -> Shape ->
> ContentProperties
>
> Does it make sense, a la MailDemo, to subclass these from a
> common class
> having only two instance variables, i.e., an (NSMutableArray*)
> sublist and an
> (NSMutableDictionary*)properties, the latter of which would be
> individually
> initialized with all the keyed properties associated with the
> particular
> subclass? Or maybe even just use one class with individual
> initializers?
From my past experiences (which are not Cocoa) I would not recommend
to artificially flatten such class hierarchies. Having just one class
to actually represent a number of different concepts will prevent (or
at least make it very tedious) to define methods particular for each
concept. I cannot see why this should be any different in Cocoa/
Objective-C.
What might be useful though is to a have an abstract superclass that
permits access to common things like a label, the set of children etc.
As Matt pointed out, you might want to take a look at CoreData which
simplifies development of such applications.
Lars
| Related mails | Author | Date |
|---|---|---|
| Sam Colombo | Apr 29, 05:09 | |
| Matt Neuburg | Apr 30, 01:58 | |
| Sam Colombo | Apr 30, 03:39 | |
| Lars von Wedel | Apr 30, 08:59 |






Cocoa mail archive

