인터페이스의 세가지 특징
- 인터페이스의 사용법을 익히기만 하면 내부 구조나 동작 방식을 몰라도 쉽게 조작
- 자동차 엔진의 구조, 구동 방식등을 몰라도 "핸들", "페달"과 같은 사용법만 익히면 운전 가능
- 인터페이스 자체는 변경 하지 않고 단순히 내부 구성이나 작동방식만을 변경하는 것은 인터페이스 사용자에게 영향을 미치지 않음
- 정비소에서 자동차 엔진을 교체하거나, (말이 안되지만) 가솔린을 전기모터로 바꿔도 문제없다
- 대상이 변경 되더라도 동일한 인터페이스를 제공하기만 하면 아무런 문제 없이 상호 작용 가능
- 하나의 자동차의 운전에 익숙하다면, 비슷한 다른 자동차의 운전에 문제없다
공용 인터페이스 - 외부에 공개된 구역(메세지 요청 등)
놀라운 사실 - 객체가 자기 자신과 상호작용 할 때도 메시지를 통해 상호작용 해야 함
멧 와이스펠드의 세가지 원칙
- 좀 더 추상적인 인터페이스
- 최소 인터페이스 - 외부에서 사용할 필요가 없다면, 굳이 노출시키지 말 것
- 인터페이스와 구현 간에 차이가 있다는 점을 인식
객체 외부에 노출되는 인터페이스와(다른 객체와 소통) 객체 내부에 숨겨지는 구현(자신 상태 변화 등)을 명확하게 분리해서 고려해야 함(캡슐화)
캡슐화 - 구현을 외부로부터 숨기는 것
- 상태와 행위의 캡슐화
과거에는 데이터와 프로세스를 엄격하게 구분하지만, 객체지향에서는 데이터와 프로세스를 객체라는 하나의 틀 안으로 함께 묶어 놓음으로써 객체의 자율성을 보장 - 사적인 비밀의 캡슐화
외부의 객체가 자신의 내부 상태를 직접 관찰하거나 제어할 수 없도록 막기 위해 의사소통 가능한 특별 경로 [만]외부에 노출하는 것
'책 > 객체지향의 사실과 오해' 카테고리의 다른 글
6장. 객체 지도 (2) | 2025.01.01 |
---|---|
5장 Part1. 책임과 메시지 (1) | 2025.01.01 |
4장. 역할, 책임, 협력 (0) | 2025.01.01 |
3장. 타입과 추상화 (0) | 2025.01.01 |
2장. 이상한 나라의 객체 (2) | 2025.01.01 |