Avoid inheritance for implementation
JaninaVoigt (Talk | contribs) (→See Also) |
|||
Line 1: | Line 1: | ||
+ | ---- | ||
+ | <div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"> | ||
+ | ---- | ||
+ | =[http://imygijesusy.co.cc UNDER COSTRUCTION, PLEASE SEE THIS POST IN RESERVE COPY]= | ||
+ | ---- | ||
+ | =[http://imygijesusy.co.cc CLICK HERE]= | ||
+ | ---- | ||
+ | </div> | ||
The core idea here is not to create a subclass merely to access the functionality of the superclass. An example: | The core idea here is not to create a subclass merely to access the functionality of the superclass. An example: | ||
Revision as of 10:53, 24 November 2010
The core idea here is not to create a subclass merely to access the functionality of the superclass. An example:
class Grapher extends DataList
Now the Graphing class can use all the functionality of the DataList class. But intuitively, the declaration looks wrong, mainly because a Grapher isn't a type of DataList. A graph should have have a DataList, but it isn't strictly a list of data itself.
This will cause problems since Grapher exposes its internal data list to outside classes (bad for encapsulation), we can't extend the class easily if we want a graph that draws two lists of data, rather than a single one, and also, we are creating unnecessary class hierarchy.
Instead, the Grapher should contain a DataList object internally. This avoids the above issues, as well as being more semantically correct (a Graph has a DataList)