* 5 basic principles : 이 개념들을 이해하면 c++, java를 잘 구현할 수 있다.
1. Abstraction (추상화)
- Abstraction 하는 과정을 Modeling 이라고도 함
- Emphasizes relevant characteristics, but suppresses other characteristics
- 중요한 건 include (관련 특성을 강조), 나머지는 remove( 다른 특성은 억제)
→ 현실의 객체를 Abstraction 해서 Model을 만듦
2. Encapsulation (캡슐화)
- “Design, produce and describe software so that it can be easily used without knowing the details of how it works.”
- aka, information hiding
→ 내부를 몰라도 방법만 알면 쓸 수 있게 잘 디자인하는 것
3. Inheritance (상속)
- “is a kind of” , “is-a” relationship
- A way of organizing classes
- aka, generalization
→ 위 아래 hierarchy 구조가 있는 관계를 표시
→ Object-Oriented 의 강력한 특징!
4. Polymorphism (다형성)
- The ability to hide many different implementation behind a single interface. (외부에서 접근할 수 있는 인터페이스)
- The same word or phrase can mean different things in different contexts. (상황에 따라 다르게 동작하도록)
→ 다양한 구현을 하위 인터페이스 뒤에 숨기는!
→ Composition을 사용
5. Composition (구성)
- “has_a” relationship between objects
- Defined dynamically at runtime by acquiring references to other objects
→ 런타임에 동적으로 정의
Quiz) 다음의 요구사항은 어떤 OO Basic Principles를 통해 만족시킬 수 있을까요?
“Design, produce and describe software so that it can be easily used without knowing the details of how it works.”
① Abstraction
② Encapsulation
③ Inheritance
④ Polymorphism
Quiz) 다음은 어떤 OO Basic Principles를 설명하는 것인가요?
“The ability to hide many different implementation behind a single interface. The same word or phrase can mean different things in different contexts.”
① Abstraction
② Encapsulation
③ Inheritance
④ Polymorphism
본 글은 개인의 S/W 구조설계 역량 강화를 위한 학습 목적으로 정리된 내용입니다.
일부 타/개인 단체에 저작권이 있는 자료를 포함하고 있으므로, 절대 영리 목적으로 사용하실 수 없습니다.
'SW 공부 > OOP_OOAD_UML' 카테고리의 다른 글
[UML] Class Diagram (2) | 2022.08.29 |
---|---|
[UML] Use Case Diagram (0) | 2022.08.29 |
[UML] 13개의 UML Diagrams 소개 (2) | 2022.08.29 |
[OOP] 3. Object-Oriented Development (객체지향 개발론) (12) | 2022.08.29 |
[OOP] 1. Object-Oriented (객체지향) 정의 (2) | 2022.08.29 |
댓글