Difference between revisions of "Composition - 2017"

From TRCCompSci - AQA Computer Science
Jump to: navigation, search
(Conclusion)
Line 46: Line 46:
  
 
=Conclusion=
 
=Conclusion=
The following are therefore examples of composition (Composition shown with Empty Diamond):
+
The following are therefore examples of composition (Composition shown with Filled 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:32, 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 Filled Diamond):

  • Location to Fox
  • Location to Warren
  • Warren to Rabbit
  • Simulation to Location