사용과 구현의 분리
추상 자료형의 가장 큰 특징 중 하나로 내가 어떤 데이터 타입을 추상적으로 정의해서 사용했다면 실제로 그 데이터 타입을 구체적으로 구현하는 것은 남에게 맡길 수도 있다는 시각. 사용하는 관점과 구현하는 관점을 명확히 분리함으로써 프로그램 하나를 여러 사람이 나누어서 짜는 데 매우 유용함.
일반성 (Generality)
대표적인 추상화의 속성으로 작업을 정의하는 데 있어서 특수한 경우는 무시한다는 것. 이는 어떤 특정한 목적을 배제함으로써 해당 작업의 범용성 (General Usability)을 높이기 위한 것이다.
사용자 관점 (User View, Interface View)의 추상 자료형
1) 작업명
2) 용도
구현자 관점 (Implementation View)의 추상 자료형
1) 작업의 구체적 구현 방법
2) 구현을 위한 데이터 집합
| 추상 자료형 | ADT = 작업 (또는 연산) + 데이터 집합 |
| 일반 용어 | 프로그램 = 알고리즘 + 자료구조 |
| 객체지향 방법론 | 클래스 = 메시지(사용자 관점) 또는 메소드(구현자 관점) + 상태 변수 또는 인스턴스 변수 |
| C++ | 멤버 함수 + 멤버 데이터 |
'자료구조' 카테고리의 다른 글
| 덱/데크 (Deque), 우선순위 큐 (Priority Queue) (0) | 2024.03.28 |
|---|---|
| 큐 (Queue) (1) | 2024.03.27 |
| 스택 (Stack) (0) | 2024.03.27 |
| 리스트 (1) | 2024.03.26 |
| 배열, 구조체 (0) | 2024.03.24 |