CSC/ECE 517 Fall 2007/wiki2 9 cv

From Expertiza_Wiki
Jump to navigation Jump to search

Inheritance vs. delegation. Follow the debate on inheritance vs. delegation. Construct (or, better, cite) examples that show cases where inheritance is better, and cases where delegation is better. Attempt to characterize the situations in which you should employ one or the other.

Inheritance vs. Delegation

Inheritance

Inheritance is a way to form new classes in object oriented programming using already defined classes. Inheritance is used to help reuse code that already exists with little or no modifications and this is one of the advantages of using inheritance since it helps reduce the complexity of a program.

Advantages and Disadvantages of Inheritance

Advantages of Inheritance:
- Straightforward to use
- Supported by many programming languages
- Easy to implement new functionality

Disadvantages of Inheritance:
- Exposes a subclass to the details of its parent class
- Changes in the parent class implementation would cause the subclass to change as well


Delegation

Delegation is when one object relies on another object in order to provide a specified set of functionalities and this is sometimes referred to as aggregation, consultation, or forwarding.

Advantages and Disadvantages of Delegation

Advantages of Delegation:
- Provides flexibility due to the fact that any object can be replaced at run time by another one of the same type

Disadvantages of Delegation:
- Is efficient since objects are encapsulated

References

Inheritance vs. Delegation