객체 지향 설계

‍정진철·2022년 9월 3일
0

자료구조

목록 보기
2/3

출처: c++ 자료구조론

1. 객체 지향 설계

1.1 알고리즘적 분해와 객체 지향적 분해

1) 고전적 프로그래밍 기법: 알고리즘적 분해 기법 사용

  • 소프트웨어를 '프로세스'로 간주.
  • 소프트웨어를 프로세스의 스텝을 나타내는 모듈로 분해.
  • 프로그램을 구현하기 위한 자료구조는 2차적 관심사이며 프로젝트를 기능적 모듈로 나눈 다음에야 고려.

2) 객체 지향적 분해 : 소프트웨어를 해당 분야의 개체를 모델링하는 잘 정의된 객체의 집합으로 봄.

  • 이러한 객체는 서로 상호작용해 소프트웨어 시스템 형성.
  • 기능적 분해는 시스템이 객체로 분해된 다음 고려.
  • 장점은 소프트웨어의 재사용 조장.
  • 이를 통해 시스템의 변화에 따른 유동적 변화,발전 가능.
  • 객체가 개체를 모델링 하므로 더 직관적.

1.2 객체 지향 프로그래밍의 기본 정의와 개념

객체: 객체(object)는 계산을 수행하고 상태를 갖는 개체이다. 그러므로 객체는 '데이터''절차적 요소(연산 등)'의 결합으로 볼 수 있다.

객체 지향 프로그래밍(object-oriented programming)은 다음과 같은 구현 방식을 적용한다.

  • 1 - 객체는 기본적인 구성 단위(building block)이다.
    2- 각 객체는 어떤 타입(또는 클래스)의 인스턴스(instance)이다.
    3- 클래스는 상속(inheritance) 관계에 의해 서로 연관되어 있다.
    p.s: 상속을 사용하지 않는 프로그래밍 기법은 객체 지향 기법이 아니다.

어떠한 언어가 다음과 같은 기능을 가지고 있는 경우 '객체 지향 언어(object-oriented-language)' 라 한다.

  • 1 - 객체를 지원한다.
    2 - 모든 객체는 클래스에 속한다.
    3 - 상속을 지원한다.

앞의 두 기능을 지원하되 상속 기능을 지원하지 않는 언어들이 있는데 이것들은 '객체 기반 언어'라 한다. C++는 객체 지향 언어인 반면 Javascript는 객체 기반 언어이다.

profile
WILL is ALL

0개의 댓글