Flash / Flex / ActionScript/Class/Composition

Материал из Web эксперт
Перейти к: навигация, поиск

Class composition

   <source lang="java">

package {

   public class Employee
   {
       public function doWork():int
       {
           return 1;
       }
   }

}

   class Manager
   {
       protected var employees:Array;
       public function Manager(numberOfEmployees:int)
       {
           employees = new Array();
           for (var i:int = 0; i < numberOfEmployees; i++)
           {
               employees[i] = new Employee();
           }
       }
       public function delegateWork():int
       {
           var totalWork:int = 0;
           for each (var employee:Employee in employees)
           {
               totalWork += employee.doWork();
           }
           return totalWork;
       }
   }
   class Company
   {
       public function Company()
       {
           var manager:Manager = new Manager(10);
           var completedWork:int = manager.delegateWork();
           trace(completedWork); //10
       }
   }
       </source>
   
  


Inheritance vs. Composition

   <source lang="java">

package {

   public class House
   {
       public var kitchen:Kitchen;
       public var livingroom:LivingRoom;
       public var bedrooms:Array;
       public function House(numberOfBeds:int)
       {
           kitchen = new Kitchen();
           livingroom = new LivingRoom();
           bedrooms = new Array();
           for (var i:int = 0; i < numberOfBeds; i++)
           {
               bedrooms[i] = new Bedroom();
           }
       }
   }

} class Kitchen{ } class LivingRoom{ } class Bedroom{ }

       </source>