views:

157

answers:

8

I've been refactoring Media Browser and have started to define a proper inheritance model for our domain objects

so I have

BaseItem
-> Video
--> <Need a name for this>
---> Episode
---> Movie
-> Folder
--> Season

Essentially tv show episodes and movies have some attributes in common (like actor or director listings) so I need a name for this common base class.

I don't want to chuck this in the Video base class, cause thing like mpegs that you record on your camera have no actors or directors so they are simply Videos ...

Any help with a name would be much appreciated..

+2  A: 

I am fairly sure that the TV/cable industry has a term for this since scheduling a channel's lineup for a particular day involves scheduling these X's (feature movies and show episodes). I'm not sure what the term is in English though. I thought it was a program or broadcast, but I think it is more general.

Uri
Broadcast is a good candidate ... Program may be a bit too confusing for programmers ..
Sam Saffron
i like Broadcast
Bramha Ghosh
+4  A: 

Production?

Phil Price
Yerp I kind of like that
Sam Saffron
A: 

Episode and Movie have professional production in common, as opposed to your outside case of personally-produced video. How about ReleaseVideo or CommercialVideo?

Dave Swersky
CommercialVideo can easily be confused with plain old commercial. ReleaseVideo kind of doesn't really roll of tongue
Sam Saffron
A: 

MediaItem?

Maybe even swap MediaItem and Video so you can extend it to audio?

Damovisa
A: 

What comes to mind:

  • Distribution (this would allow you to have Professional and Amature too)
  • Broadcast (not really, but might get you some other thoughts)
TofuBeer
+3  A: 

Well, in plain English, I've always just called them shows. "Going to see a show at the theater." "Did you catch that show on the History channel?"

Peter Richards
Another great name, now I have to decide between Show and Production I'm leaning towards show.
Sam Saffron
+1  A: 

I definitely agree with @Richard but I would suggest you skip the extra level "Video" and replace it with "Shows"... If the main aspect is to keep it user-friendly.

However, I think the main problem is that you are mixing up folder structure (user interface structure) and class inheritance (internal structure).

If it was for the code only you could have something like (example only, the terms may are just made up):

Media (ICollectionItem)
    Video
        Film
        Program
    Sound
        Sample
        Recording

Collection (ICollection)

But you could still show it to the user as:

Shows [Collection]
    Film [Film]
    Series [Collection]
        Episode [Program]
Music [Collection]
    Recordings [Collection]
        CDS [Recording]
        Vinyls [Recording]
    Sample Compilations [Collection]
        Sample [Sample]
Theo.T
Actually things like Season and Folders have some things in common with Videos in my domain model. All three have a bunch of images associated with each entity (primary/secondary/banner and backdrops) My collections are not pure collections, they have metadata associated with them
Sam Saffron
It may make sense to inject a Media between my base class and Video to allow for Music later down the line ...
Sam Saffron
+1  A: 

Coming from the television industry the common terminology is usually:

  • Broadcaster (YTV, Teletoon, etc.)
    • Series (Ben 10, Total Drama Island, etc.)
      • Episode (1:Pilot, 2:The Biggest Mistake, 3:Overboard, etc.)
        • Character
          • Actor (who played or voiced the character)
        • Director
        • etc.

The way I see it, its not such a big deal storing your actors inside the episodes since you can always consolidate them using a method or property on Series to get all the actors. For example:

allActorsInSeries = Series.Actors;

This format can still be applied to feature films since the episodes simply represent the film and its sequels.

Soviut