>>So, if I read that properly. You are saying that one HAS to be DRUNK AND TIRED to drive the car??? No wonder there are so many accidents on the road... ;)
>>
>>Chad
>
>Wow, you're right! And all the others haven't noticed that before! We must be really lousy reviewers. :)
Right - and this actually proves Jim's assertion that this can be hard to read, and my assertion that the names of methods have to be meaningful. The .drunk() and .tired(), .tank.empty() methods have completely wrong names. In a context of the example, they have to have positive names:
lCanDrive=.f.
do case
case not this.HaveCar()
case not this.HaveLicense()
case not this.sober()
case not this.rested()
case not this.car.GotGas()
...
otherwise
lCanDrive=.t.
endcase
>>>
>>>So, if someone doesn't have a car or a license, we don't care whether he has had a drink or two, and we surely won't check the tank in a car he doesn't have.
>>>
>>>I don't see anything wrong with this approach, on the condition that the method names are meaningful.