> I am trying to wrap my head around object oriented programming, but I 
> am having a difficult time trying to figure out how to code something 
> like this....
> 
> A car manufacturing company makes multiple models of cars (like, 
> Toyota: Sienna, Tundra, Camry). Each model has a low end, medium end, 
> and high end version. Each version has a set of options it can choose 
> from.
> 
> Here are my thoughts:
> There are at least two classes here (car and option), but I don't  know
> wether to make subclasses of each of the models. Then do I make 
> subclasses of each of the models for low, medium, and high end?
> 
> I could create an array in each of the subclasses for each of the 
> options available, but what if there are a hundred options?
> 
> What if an option provides more options (like, if you get leather 
> seats, then you can get them heated if you like)?

When developing with OO languages I like to map out my domain objects
first and see how they will be modeled in the system. I tend to gather
some requirements from the customer and team members to help out with
this process. These domain objects should reflect how users experience
and define the objects in your system. So if needs be, you can break
into other design patterns. Many times testing will influence the domain
objects themselves as well (ie an example of testing system user and
persons).

I would suggest looking at a couple design patterns and becoming
familiar with the concepts and theory behind them and then determine
where you can utilize those patterns in your current application.

If i were creating the system, i would have a hybrid implementation
using many different patterns. For sake of argument i would use
subclasses and composition for most of my domain objects. How they are
created and interact is another ball of wax. Use interfaces, overloading
and overriding when needed and watch out for over extending or over
abstracting your application.  That can be detrimental to an application
if overused.


--
Ray


_______________________________________________

UPHPU mailing list
[email protected]
http://uphpu.org/mailman/listinfo/uphpu
IRC: #uphpu on irc.freenode.net

Reply via email to