일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- JAVA11
- 자바 스레드 실행 순서 제어
- heroku
- 자바 thread 실행 순서 제어
- 자바입력
- 카데인 알고리즘
- input
- hash table
- 수학
- Kadane's Algorithm
- array
- 사칙연산
- R
- scanner
- Easy
- SpringBoot 2
- Today
- Total
DeFacto-Standard IT
인터페이스, 실체화 관계 본문
인터페이스와 실체화 관계
인터페이스란 책임(기능, 메서드) 이다. 어떤 객체의 책임이란 객체가 해야 하는 일로서 해석할 수 있고 어떤 경우에는 객체가 할 수 있는 일로도 해석할 수 있다. 즉, 객체가 외부에 제공하는 서비스나 기능은 객체가 수행하는 책임으로 보는 것이다.
인터페이스를 어떤 공통되는 능력이 있는 것들을 대표하는 관점으로 볼 수 있다. 비행기와 새는 공통적으로 날 수 있는 능력이 있다. 이런 공통 능력이라는 관점에서 다음과 같이 비행기와 새를 그룹화할 수 있는 메커니즘이 인터페이스다.
인터페이스 자체는 실제로 책임을 수행하는 객체가 아니며 TV 리모컨이나 형광등 스위치가 이와 같은 책임들을 실제로 수행하는 객체다.
따라서 책임과 이를 실제로 실현한 클래스의 관계는 분리해서 보여줄 필요가 있다.
UML에서는 인터페이스와 이를 실제로 실현한 클래스의 관계를 상속과 유사하게 빈 삼각형을 머리에 있는 실선 대신 점선을 사용해 표시한다. 이때 인터페이스는 클래스에 사용하는 사각형을 그대로 사용하고 인터페이스 이름 위에 interface라고 쓴다.
UML에서는 이와 같이 기존의 기호를 새로운 개념에 이용하고자 할 때도 스테레오 타입으로 표기한다.
스테레오 타입은 '<< >>'에 원하는 이름을 쓰는데, 이때 '<< >>'에 들어갈 이름을 키워드라고 한다.
위 그림은 새(Bird 클래스)와 비행기(Plane 클래스)를 Flyable이라는 인터페이스 실체화 관계로 표현한 것이다.
더 간단하게 인터페이스와 클래스 사이의 실체화 관계를 나타낼 수 있다.
*일반화 관계 : 'is a kind of 관계'
실체화 관계 : 'can do this 관계'
'Design Pattern > References' 카테고리의 다른 글
일반화 관계, 다형성 (0) | 2017.10.28 |
---|---|
추상화, 캡슐화 (0) | 2017.10.28 |
의존관계 (0) | 2017.10.28 |
집합관계 (0) | 2017.10.28 |
일반화관계 (0) | 2017.10.28 |