by
Patwos >> Tue, 9 Nov 2004 6:00:03 GMT
I'm sure you'll agree that there are times where you do not want to expose the internal workings of your own application schema classes and therefore have both public and private interfaces within those classes for performing the desired work. In this way, you can easily change the internal workings of your class without any negative impact on users of your class if these changes do not impact on the public interface for that class. This is particular the case if you're developing a package schema for other users to import. Obviously it is far easier to change the internal workings when you do not need to concern yourself with the impact of any changes to these "hidden/undocumented" methods. It's also nice not to have to document all of them as well and I'm sure the same applies to the Jade developers responsible for RootSchema properties/methods.
As Allistar has said, these internal meta-data classes/methods can be useful in scripts, but I also avoid using them in production application code. One would hope you're not attempting to utilise properties/classes/methods from JadeSchema given that this would prevent your application from running in a deployed environment where JadeSchema does not exist.
Lastly, I'm also a fan of the KISS principle. In a number of cases where I've seen people utilising some undocumented methods, they could easily have achieved their desired result in an alternate, and often more obvious manner. Over a few drinks, the developers of such methods will often admit they did it that way "because they could" and because sometimes it's nice to be able to "show off" with some smart/generic code. Particularly given that it takes a little more exercise of the grey cells to write this style of code, and is therefore more interesting than just writing some "grunt code" that would have still achieved the desired result albeit with a little less "feel good satisfaction" factor....
Pat.
PS: Soap box available for rent.... just $0.02.