객체지향 핵심개념
Object-Oriented Concepts
Object
- 객체지향적 시각
하나의 프로그램은 여러 개의 객체들로 구성된다.
각 객체는 소수의 테이터와 함수들로 구성된다.
Objects + Objects = Program
Data Structures + Algorithms = Object
객체란?
필요로 하는 데이터와 그 데이터 위에 수행되는 함수들을 가진 작은 소프트웨어 모듈
특정 데이터와 관련된 함수들을 가지는 프로그램 모듈
캡슐화와 정보은닉의 개념을 프로그램에서 효과적으로 사용할 수 있도록 한 장치
데이터란?
객체의 상태를 저장하는데 사용
함수란?
그 객체가 수행할 수 있는 기능을 정의
객체의 조건
상태(State)를 가져야 한다.
행위(Behavior)를 가져야 한다.
고유의 식별자(Identity)를 가져야 한다.
캡슐화(Encapsulation)
특정 데이터와 관련된 함수들을 한 덩어리로 묶는다.
EX) c++의 캡슐화 장치
정보은폐(Information Hiding)
캡슐 내부의 정보를 외부에 감추는 것을 의미한다.
캡슐화 그 자체가 캡슐 안의 내용이 외부에 보이지 않는 것을 의미하지는 않기 때문에,
정보은폐를 통해 객체에 블랙박스(Black box)를 씌워서 내부의 정보를 감춘다.
인터페이스(Public Interface)
외부 객체들이나 프로그램들이 접근할 수 있는 데이터와 함수들을 정의하여,
외부에서 이 인터페이스를 통해서 정보를 검색하거나 함수를 실행하도록 한다.
메시지(Message)
객체 접근방법
- 한 객체는 다른 객체에게 메시지를 보내어 교류한다.
메시지 교환(Message Passing)
- 메시지 교환은 객체들 사이에 정보를 교환할 수 있는 유일한 수단이다.
- 한 객체가 다른 객체의 함수를 부르는 과정을 메시지 교환(Message Passing)이라고 한다.
복합객체(Composite Object)
- 한 객체가 다른 객체들을 포함하고 있는 경우
'Software Engineering' 카테고리의 다른 글
애자일 개발 기법 (0) | 2019.04.17 |
---|---|
Agile software development (0) | 2019.04.17 |
Software process (0) | 2019.04.17 |
Class (0) | 2019.04.17 |
소프트웨어공학 (0) | 2019.04.17 |