Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Superclass vs. Subclass structures
Message
 
To
28/10/1998 17:15:54
General information
Forum:
Visual FoxPro
Category:
Object Oriented Programming
Miscellaneous
Thread ID:
00151975
Message ID:
00152021
Views:
30
>Hi boys & girls ---
>
>Another design abstract problem. Let us say that we have a class called Airplane that's parent class is Vehicle. All Vehicles derived classes Move. How they move is quite different: Airplanes fly, Cars drive, and Rowboats are rowed. Which of the four approaches are taken:
>
>1) The Vehicle superclass has Fly,Drive,and Row methods. The implementation of these methods is at either superclass or class level.
>
>2) The Vehicle supports a Move method. The subclass defines Move as appropriate and returns a value indicating it flew,drove, or was rowed.
>
>3) The subclasses have Fly, Drive, and Row methods as apppropriate; no Move or move specific methods are defined in the Vehicle superclass.
>
>4) We have *no* Vehicle superclass and each subclass of Airplane, Rowboat, and Car is it's own superclass.
>
>I currently strive for option 2 and used to use 4. Comments?

I would vote for option 2.

But your Vehicle class should be of Container type.
vhlCar.Init()
this.AddObject("DriveTrain","engInternalCombustion", 6, V )
this.AddObject("brkDisc","brkBrake", 2 ) && 2 - DiscVent
this.AddObject("whlWheel","whlCar", 4, 14 ) && 14"
*
*
vhlCar.Move(1) && 1 - Forward)

***Move() Method
lparameter tlWhere
local llReturn
IF this.brkDisc(0)
    llReturn = this.DriveTrain(tlWhere) 
ENDIF
RETURN llReturn
And don't forget to set vhlCar.WhereTo property... :)
Nick Neklioudov
Universal Thread Consultant
3 times Microsoft MVP - Visual FoxPro

"I have not failed. I've just found 10,000 ways that don't work." - Thomas Edison
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform