Computer Science/Design Pattern

1.3.2.2 관계(일반화 관계)

s_y_130 2021. 3. 9. 12:35

JAVA 객체지향 디자인 패턴<UML과 GoF 디자인 패턴 핵심 10가지로 배우는> 정리

 

2. 일반화 관계

한 클래스가 다른 클래스를 포함하는 상위 개념일 때 두 클래스 사이에는 일반화 관계가 존재한다.

  • 객체 지향 개념에서는 일반화 관계를 상속 관계("is a kind of" 관계)라고 한다.

  • 부모 클래스

    • 추상적인 개념 (실제로 존재하지 않는다.)
    • 삼각형 표기사 있는 쪽
    • 가전 제품
  • 자식 클래스

    • 구체적인 개념
    • 삼각형 표시가 없는 쪽
    • 세탁기, TV, 식기 세척기
      • '세탁기'is a kind of '가전제품'
      • 'TV' is a kind of '가전 제품'
      • '식기 세척기' is a kind of '가전 제품'
  • 부모 클래스는 자식 클래스의에게 공통 속성이나 연산을 제공하는 틀이다.

 

 

추상 클래스

  • 추상 메소드를 하나 이상 가지는 클래스

  • 추상 메소드

    • 부모 클래스에서 구현되지 않은 빈 껍데기만 있는 연산

    • 예를 들어, 위의 예에서 turnOn과 turnOff는 자식 클래스 마다 다르기 떄문에 부모 클래스인 가전 제품에서 해당 연산에 대한 정의를 하지 않고 빈 껍데이만 있는 연산(추상 메소드)를 제공한다.

    • 추상 클래스는 다른 일반적은 클래스와는 달리 객체를 생성할 수 없다.

  • UML에서의 추상 클래스와 추상 메소드 표현

    • 이탤릭체
    • 스테레오stereotype 타입('<<', '>>' 기호 안에 원하는 이름을 넣음)