본문 바로가기

디자인 패턴

디자인패턴 : Composite


복합체 디자인패턴

- 부분과 전체의 계층을 표현하기 위해 객체들을 모아 트리 구조로 구성합니다. 사용자로 하여금 개별 객체와 복합객체를 모두 동일하게 다룰 수 있도록 하는 패턴. 

클래스 설명

플래시에서 UI를 만들 때 무비클립이 무비클립을 포함하는 관계를 많이 봐왔을 것이다. 구조관점에서 봤을 땐 상위객체안에 하위객체가 있다. 즉 자식과 부모의 관계가 된다. 그러나 객체자체의 성질을 보면 부모와 자식과의 관계가 동질적임을 알 수 있다. 바로 이런 자신과 똑같은 성격의 객체를 포함하는 관계를 복합체패턴이라고 한다. 플래시에서 대표적인 클래스가 DisplayObjectContainer 클래스가 있다.

클래스 사용방법

var sampleParent: Sprite = new Sprite();      //개별객체
var sampleChild: Sprite = new Sprite();        //개별객체
var sampleGrandson: Sprite = new Sprite(); //개별객체 

sampleChild .addChild( sampleGrandson ); //복합객체 자식을 하나포함
sampleParent.addChild(  sampleChild );     //복합객체 자식을 두개포함

클래스 구성
 

개별 또는 복합 클래스들는 DisplayObjectContainer  클래스를 상속 받고있으므로 공통적인 메서드를 사용할 수 있다.

package
{
     public class Sprite extends DisplayObjectContainer
     {
          public function Sprite ()
          {
               //생략
          }

          //이하 코드 생략
     } 
}

'디자인 패턴' 카테고리의 다른 글

디자인패턴 : Singleton  (0) 2011.08.03
디자인패턴 : Command  (0) 2011.08.03
디자인패턴 : Iterator  (0) 2011.08.03
디자인패턴 : State  (0) 2011.08.03
디자인패턴 : Template Method  (0) 2011.08.03