어디서나 설명하는 기본적인 개념에 대해 먼저 정리해본다.
기본 개념
1. Abstracition (추상화)
'컴퓨터의 구조와 설계' 중
컴퓨터 설계자와 프로그래머는 자원의 수가 급격히 증가함에 따라 설계 시간이 길어지는 방지하기 위해서 생산성을 높이기 위한 기술을 개발해야 했다. 하드웨어와 소프트웨어의 생산성을 높이는 핵심 기술 중 하나는 여러 수준에서 설계를 명시하는 추상화(Abtraction)이다.
하위 수준의 상세한 사항을 안 보이게 함으로써 상위 수준의 모델을 단순화한다.
2. Encapsulation (캡슐화)
정보은닉
다른 곳에서 미치는 영향을 최소화
3. Generalization (상속)
4. Polymophism (다형성)
클린코드 중
추상 인터페이스를 제공해 사용자가 구현을 모른채 자료의 핵심을 조작할 수 있어야 진정한 의미의 클래스이다.
자료를 세세하게 공개하기보다는 추상적인 개념으로 표현하는 편이 낫다.
자료/객체 비대칭
객체는 추상화 뒤로 자료를 숨긴 채 '자료를 다루는 함수'만 공개한다.
자료 구조는 자료를 그대로 공개하며 별 다른 함수를 제공하지 않는다.
댓글