On Jul 31, 2006, at 1:58 PM, Michael Babcock wrote:

And by that you mean to be very interchangable and not get snagged on the different layers from which it may be called, if I understand that principle correctly. An example for folks not familiar with this would be where you program something using objects on a page, then later put them into some other container on a different level (say a page within a pageframe). If you've designed to the interface, everything should still function just fine instead of not being able to find the references correctly. That's another reason why it's good to put the code in the highest level (in this case, the custom form methods) instead of the button.clicks. Also allows for easier re-use if you really need it: like instantiating the form and calling it's custom object -- that's a heck of a lot easier than instantiating the form and having to drive down 'n' levels into the object hierarchy to some button's click event!

Just trying to help the lurkers...correct me if wrong.

That's one of the main reasons for not hard-coding paths to objects. But no matter how you reference an object, you should always program to interface, not to implementation.

The example I gave back when I used to give this topic at conferences was a light switch in a room. In your app, you want to control the lighting by turning the switch on and off. Now let's imagine the switch is a typical mechanical switch with contacts that are opened and closed when you flip the toggle. In code, you could write oSwitch.contact1.Closed = .T., or oSwitch.TurnOn(), and either code would work great. However, if at a later date the switch was replaced by a mercury switch, or an electronic switch, or a dimmer switch, the first example of code would probably fail, since it was written to use an implementation detail of a particular switch, instead of the public interface all switches are designed to use. By coding to the public interface, such as the TurnOn() method, the code will work no matter how the switch works internally.

-- Ed Leafe
-- http://leafe.com
-- http://dabodev.com





_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/profox
OT-free version of this list: http://leafe.com/mailman/listinfo/profoxtech
** All postings, unless explicitly stated otherwise, are the opinions of the 
author, and do not constitute legal or medical advice. This statement is added 
to the messages for those lawyers who are too stupid to see the obvious.

Reply via email to