다양한 기록

OOP #2: Encapsulation, Information hiding (혹은 Abstraction), Message 본문

소프트웨어공학

OOP #2: Encapsulation, Information hiding (혹은 Abstraction), Message

라구넹 2024. 10. 20. 19:57

Encapsulation (캡슐화)

- 데이터와 연산의 번들

- 관련된 것들을 함께 묶음

 

Information Hiding (정보 은폐)

- 객체를 하나의 Black box 취급

- 일부는 완전히 은폐, 일부는 공개

- 객체의 사용자들은 공개된 인터페이스를 통해서만 객체에 접근 가능

- 숨겨진 데이터에 대한 직접 접근은 허용되지 않으며 오류를 발생시킴

 

Abstraction (추상화)

객체지향의 특성은 어디는 정보 은폐, 어디는 추상화라고 함

비슷하면서도 다른 개념

추상화는 어찌보면 요약이라고 생각할 수도 있고, 말 그대로 추상적인, 대략적인 표현이라 볼 수도 있음

- 상위 클래스에서 추상 메소드만 정의해두고 서브 클래스에서 정의하는 것도 추상화

- 내부를 안보이게 해서 요약한다고 이해하는 것도 가능

 

접근 지정자(visibility specifier)

C++ : private, protected, public, friend

Java : private, protected, public

 

protected

- 자신과 자식들만을 위한 것

- Java는 + 같은 패키지 내에서 사용 가능


정보 은폐의 장점

- Higher Module Independency (독립성)

- Better Maintainability (유지보수성)

- Better Extensibility (확장성)

- Internal representaton or algorithms in an object can be changed without affecting other objects (독립성)

- Provides abstract view of objects (추상화)


Message

- 오브젝트가 다른 오브젝트에 메시지 샌딩

- 오브젝트 이름, 메소드, 인자로 구성

 

 

'소프트웨어공학' 카테고리의 다른 글

UML 개요  (0) 2024.10.20
OOP #3 : Class, Instance, Polymorphism  (0) 2024.10.20
OOP #1 : 등장, 객체란?  (0) 2024.10.20
SW Myths, 등장 배경,  (0) 2024.10.20
소프트웨어 공학이란  (0) 2024.10.20