Object Oriented Design
객체 지향 설계
- Object 가 기본적인 Building Block (구성 단위) 이 되는 프로그램 설계법
구 분 | Structured Program Design | Object Oriented Design |
공통점 | Divide & Conquer * 기법 사용 | |
차이점 (과제분할방법의 차이) |
알고리즘적 분해 (함수적 분해) - S/W 를 Process 의 Step (=Module) 으로 분해 |
객체 지향적 분해 - S/W 를 Object 로 분해한 후, 기능적 분해 진행 |
* Divide & Conquer (분할-정복)
- 복잡한 문제를 여러 단순한 부분 작업으로분할하여 개별적으로 해결하는 방법
Language
1. Object Oriented Language (객체 지향 언어)
- Object 지원
- 모든 Object 는 Class 의 Instance 가 됨
- Inheritance 기능지원
ex) C++
1. Object Based Language (객체 기반 언어)
- Object 지원
- 모든 Object 는 Class 의 Instance 가 됨
- Inheritance 기능 미지원
ex) JavaScript
Data Encapsulation
- 정보은폐기능
- 외부로부터 Data Object 의 세부사항을 은닉
Data Abstraction
- Object 의 Specification 과 Implementation 을 분리하여 생각하는 기법
- Details 를 무시함으로써 복잡성을 해소함
Data Encapsulation 와 Data Abstraction 의 장점
1. 재사용을 통한 S/W 개발의 간소화
2. Testing & Debugging 이 용이해짐 (프로그램 전체가 아닌, 개별적인 Object 만 점검하면 됨)
3. 표준화로 인한 재사용성 향상 (S/W 사이의 Code 재사용이 가능해짐)
4. Data Type 표현에 대한 수정이 용이해짐