ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [GoF]컴포지트 패턴(Composite Pattern)
    Gof Design Pattern 2021. 12. 18. 19:09

     

    컴포지트 패턴(Composite Pattern)

     

     

      컴포지트 패턴이란?


    그릇과 내용물을 동일시 하는 패턴으로 하나 이상의 유사한 객체를 구성으로 설계된 객체로 모두 유사한 기능을 나타낸다.

     

      컴포지트 패턴 왜 사용할까?


    부분과 전체에 대한 복합 객체의 트리구조를 나타낼 수가 있습니다.

    클라이언트가 개별 객체와 복합 객체를 동일하게 다룰 수 있는 인터페이스를 제공합니다.

    재귀적인 구조입니다.

     

    컴포지트 패턴을 사용하게 되면

     

    • 기본 객체는 복합 객체에 포함이 되고, 복합 객체 역시 또 다른 복합 객체에 포함될 수 있다.
    • 클라이언트 코드는 기본객체와 복합객체에 대한 일관된 프로그래밍을 할 수 있다.
    • 기본 객체가 증가하여도 전체 객체의 코드에 영향을 주지 않는다.
    • 새로운 요소의 추가가 편리하고 범용성 있는 설계가 가능하다.

     

     

     

      클래스 다이어그램


     

      객체 협력


     

    • Component
      • 전체와 부분 객체에서 공통으로 사용할 기능 구현
      • 전체 클래스가 부분요소들을 관리하기 위해 필요한 인터페이스 선언
      • 전체와 부분 객체에서 공통적으로 사용할 인터페이스 선언
    • Leaf
      • 집합 관계에서 다른 객체를 포함할 수는 없고 포함되기만 하는 객체로 가장 기본이 되는 기능을 구현
    • Composite 
      • 포함한 여러 객체를 저장하고 관리하는 기능을 구현
      • 여러 객체를 포함하는 복합 객체에 대한 기능 구현
    • Client
      • Component에 선언된 인터페이스를 통하여 부분과 전체를 동일하게 처리

     

     

     

      코드보기 Click!


    GIT COMMIT 링크 열기!

    댓글