Composite pattern

491 views

Published on

Desgin Pattern
- Composite Pattern

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
491
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Composite pattern

  1. 1. Composite Pattern 박기덕
  2. 2. 목차1. Composite Pattern 정의2. Composite Pattern 다이어그램3. Composite Pattern 예제4. UpCasting & DownCasting
  3. 3. Composite Pattern 정의● 객체들을 트리 구조로 구성하여 부분과 전체 를 나타내는 계층구조로 만들고, 개별 객체와 다른 객체들로 구성된 복합 객체(Composite) 를 똑같은 방법으로 다룰수 있다.● 즉, 추상적인 상위 클래스를 만들고, 그 클래 스를 상속받는 다양한 자식클래스를 만들어 같은 종류의 클래스를 사용하듯이 만들겠다 는 패턴
  4. 4. Composite Pattern 다이어그램
  5. 5. Composite Pattern 정의● 투명성(Transparency)이란 Component 인터 페이스에 Leaf기능과 Composite의 Leaf를 관 리하는 기능들까지 모두 가지고 있음으로써 클라이언트에서 Leaf와 Composite를 똑같은 방식으로 처리할 수 있도록 한다. 즉, 동일한 상속클래스를 가지고 있으므로 클라이언트는 Leaf와 Composite를 투명하다고 여김
  6. 6. Composite Pattern 예제
  7. 7. UpCasting & DownCasting● UpCasting이란 하위클래스(상속 or 구현)가 상위클래스로 캐스팅 되는 것을 말한다. Animal +move() +sleep() Cat Bird +run() +move() +sleep() +fly()
  8. 8. UpCasting & DownCasting Animal ani1 = new Cat(); Animal ani2 = new Bird(); ani1.move(); //Animal의 Methord 실행 ani1.sleep(); //Cat Class에서 Overiding했다면 Cat의 Methord 실행 ani1.run(); //Error 발생 (Upcasting에서는 자식의 Memory상 Methord를 사용할 수 없다) ani2.move(); //Bird Class에서 Overiding했다면 Bird의 Methord 실행 ani2.sleep(); //Animal의 Methord 실행 ani2.fly(); //Error 발생 (Upcasting에서는 자식의 Memory상 Methord를 사용할 수 없다)● DownCasting이란 UpCasting한 객체를 다시 원래의형으로 복구 시키는 것을 말한다. Cat cat = (Cat)ani1; cat.run(); //Cat의 Methord 실행 cat.sleep(); //Cat의 Methord 실행 cat.move(); //Error 발생(DownCasting으로 원래의 형으로 돌아왔기에 정의되지 않은 부 모 Methord 실행 불가)

×