언어는 개념의 분별을 위함 오해를 최소화하는 방안 그러니 목적에 맞게 모호함 줄이는 방향으로 가는 것이 효율적
개념의 정의, 해체와 재정의를 통한 확장 → 반복되는 복잡한 것을 단순하게 표현하기가 목적
Abstraction Object
- A 라는 기능을 위해 만든 a Abstraction Object
- B 라는 기능을 위해 만든 b Abstraction Object
- F 라는 기능을 위해 a, b 객체를 이용하는 것이 편할 것 같아서 a, b 로 f 추상화 객체를 만들다 - 효율
- 이중 추상화에 성능한계에 따라 f' Object를 생성하거나 그대로 사용
- a, b Abstraction Object들 또한 아랫 단계의 Abstraction 로 이루어진 것
- 하지만 Free Abstraction can make infinite kind of Object를 만들어 낼 수 있다
- 효율적인 추상화의 유지, 보수와 유한한 지식으로 성능을 유지하려면 몇가지 Rule이 필요하다
Abstraction Rule
- Every Abstraction Object has layer
- 각 계층은 아래 계층의 모든 기능을 표현한다 (특수하거나 단기간 구현을 제외하고)
- 같은 계층에서 추상화는 독립적으로 이루어져야 한다
- 아래 계층은 위 계층에 의존하지 않는다