On Thu, 28 Apr 2011 07:54:33 -0700, Peter Duniho
<(E-Mail Removed)> wrote:
- snip -
>
>More to the point, that may well not be a difference that matters in
>terms of your store's operation. Unless your store is going to take
>advantage of that information in some useful way, I see no reason to
>include it in your object model.
>
The format information is an attribute of the item, just as size and
color are attributes of a piece of clothing. These details are
important to the client's decision making process and shouldn't be
excluded. Other than that I agree.
- snip -
>
>It sounds to me as though you are leading yourself to abandoning the CD
>and DVD sub-class types. And in fact, that may make the most sense. A
>"Music" object might be a vinyl record, a CD, a magnetic tape, etc. but
>the media format doesn't affect the basic characteristics of the unit.
>It's probably fine to represent that format as a simple enumeration in
>the "Music" object.
>
In terms of the selling/leasing business rules, the format should be
unimportant. A catalog object could use a set of enumeration members
to describe available formats.
>Similarly, the "Film" object might be real film, video tape, DVD,
>Blu-ray, HD-DVD, etc. but again those are just formats for the same
>basic material. One more fundamental difference might be the film/tape
>vs random-access media formats like DVD and Blu-ray. The latter may
>well have properties that simply aren't found in the linear-access
>formats, and would justify a new data type to represent. But even
>there, until you have a _specific_ reason for separating those out (i.e.
>you know exactly what properties are salient and need to be
>represented), you may as well just stick with the basic "Film" object
>and an enumeration to represent the format.
>
The distinction between film and music should be unimportant to the
selling/leasing business rules because those are nothing more than
coarse-grained formats. I would consider these formats to be top level
catalog categories. Filtering by attributes such as genre or
fine-grained format will provide further catalog navigation.
Attributes such as formats and genre are details and abstractions
should not depend upon details. Abstractly the same business rules and
design patterns can be used for selling/leasing any type of object. My
client's web app for selling auto parts could be converted to sell
multimedia items by changing the catalog and catalog business rules.
Some revisions would have to be made to the UI but the app's design
patterns and back-end business rules would be unchanged.
regards
A.G.
|