in reply to The Accessor Heresy
A few years ago, it was easy to get into immense flamewars with OO guys over a Circle class and its relation to an Ellipse class. It's probably just as easy now, but I quit paying attention. "Which inherits from which?" was often the point of contention.
The OO'ers would contend that Circle is the base class because it contains less data. The mathematicians would scoff, pointing out that a circle is a degenerate case of an ellipse.
It seemed to me that the OO example Circle class was chosen without enough domain knowledge, and that the mathematicians did not appreciate the need to save one number's worth of storage.
The OO is-a rule was ignored by the OO crew. Any circle is-an ellipse, but not every ellipse is a circle. That makes Circle a specialization of Ellipse, hence a subclass of it. It's uncommon in ordinary CS problems for a specialization to require less data than the base class.
There, I've gone and whacked that ol' hornet's nest again ;-)
P.S. Accessors are a fine thing when there is inheritance and method implementations in the base class.
After Compline,
Zaxo
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: The Accessor Heresy
by Anonymous Monk on Nov 28, 2005 at 18:47 UTC | |
by dragonchild (Archbishop) on Nov 28, 2005 at 19:02 UTC | |
by Anonymous Monk on Nov 28, 2005 at 21:30 UTC |