용어
- 프로그램에서 생성된 각 객체는 클래스의 인스턴스입니다.
- 각 클래스는 외부 세계에 이 클래스의 인스턴스를 간결하고 일관된 방식으로 제공합니다.
- 이 클래스의 인스턴스에 너무 많은 불필요한 세부 정보를 제공하지 않습니다.
- 다른 사람들이 내부 동작에 액세스할 수 없도록 합니다.
- 클래스 정의는 일반적으로 다음을 지정합니다.
- 인스턴스 변수 (데이터 멤버라고도 함)
- 메서드 (멤버 함수라고도 함)
Basic concepts of OOP
• 객체(object)
- • 계산을 수행하고 상태를 갖는 개체
- • 데이터 + 절차적 요소
• 객체 지향 프로그래밍(object-oriented programming)
- • 객체는 기본적인 구성 단위(building block)
- • 각 객체는 어떤 타입(클래스)의 인스턴스(instance)
- • 클래스는 상속 (inheritance)관계로 연관됨
• 클래스 (Class)
- • 공통된 속성과 동작을 공유하는 객체들의 그룹
Object-Oriented Design Goals
• 견고성: 예상치 못한 입력을 처리
• 적응성: 다른 하드웨어에서도 최소한의 변경으로 실행 가능
• 재사용성: 다른 시스템의 구성 요소로 사용 가능
Object-Oriented Design Principles
- 추상화: 시스템을 기본적인 부분으로 단순화
- 간결하고 명확한 언어로 설명합니다. → 추상 데이터 유형(ADTs)
- 캡슐화: 내부 세부 정보를 공개하지 않습니다.
- 모듈화: 별도의 기능적 단위로 분할합니다.
추상 데이터 유형 (ADT)
- ~을 지정하는 데이터 구조의 모델
- 저장된 데이터 type
- 지원되는 operation
- 작업의 매개변수 type
- ADT는 각 작업이 무엇을 하는지를 지정하지만, 어떻게 하는지는 지정하지 않습니다.
- ADT에서 지원하는 행동의 집합을 해당 ADT의 공개 인터페이스라고 합니다.
Hierarchical Organization
• 모듈화는 소프트웨어 재사용성을 가능하게 합니다.
• 다양한 구성 요소를 계층적인 방식으로 구성합니다.
- • "is a" 계층화
Design Patterns
• 좋은 코드를 설계하는 것은 단순히 객체지향 방법론을 이해하는 것 이상입니다.
• 이는 객체지향 설계 기법을 효과적으로 사용하는 것을 필요로 합니다.
• 컴퓨팅 연구자와 실무자들은 고품질의 객체지향 소프트웨어를 설계하기 위한 개념과 방법론을 개발했습니다. → 디자인 패턴
객체 지향적 설계 vs 절차 지향적 설계
'CS > 자료구조' 카테고리의 다른 글
[송현주10] Search Trees (0) | 2024.05.16 |
---|---|
트리 (0) | 2024.05.04 |
리스트, 시퀸스 (0) | 2024.05.04 |
벡터 Vectors (0) | 2024.05.04 |
스택 (0) | 2024.05.03 |