Difference between revisions of "Composition - 2017"
(→Conclusion) |
|||
Line 46: | Line 46: | ||
=Conclusion= | =Conclusion= | ||
− | The following are therefore examples of composition: | + | The following are therefore examples of composition (Composition shown with Empty Diamond): |
*Location to Fox | *Location to Fox | ||
*Location to Warren | *Location to Warren | ||
*Warren to Rabbit | *Warren to Rabbit | ||
*Simulation to Location | *Simulation to Location |
Revision as of 06:07, 26 May 2017
Composition is where if you delete the main class the subclasses are deleted along with it, or they no longer work.
class Location
{
public Fox Fox;
public Warren Warren;
public Location()
{
Fox = null;
Warren = null;
}
}
As you can see Location is creates an instance of Fox & Warren. So if you remove the instance of location then the Fox & Warren instances for that location will also be destroyed.
Other Examples
Warrens & Rabbits - warren creates and destroys rabbits:
class Warren
{
private const int MaxRabbitsInWarren = 99;
private Rabbit[] Rabbits;
private int RabbitCount = 0;
The Warren class declares an array of Rabbit. The constructor method for Warren creates each rabbit:
public Warren(int Variability)
{
this.Variability = Variability;
Rabbits = new Rabbit[MaxRabbitsInWarren];
RabbitCount = (int)(CalculateRandomValue((int)(MaxRabbitsInWarren / 4), this.Variability));
for (int r = 0; r < RabbitCount; r++)
{
Rabbits[r] = new Rabbit(Variability);
}
}
So if a Warren is destroyed it will destroy all of the rabbits in that warren also.
Conclusion
The following are therefore examples of composition (Composition shown with Empty Diamond):
- Location to Fox
- Location to Warren
- Warren to Rabbit
- Simulation to Location