OOP; Object-Oriented Programming
- 설계 원칙 (SOLID)
- SRP; Single Responsibility Principle; 단일 책임의 원칙
- 모듈이 변경되는 이유는 한가지여야 하며, 오직 하나의 액터에 대해서만 책임을 져야한다.
- OCP; Open-Closed Principle; 개방 폐쇄 원칙
- 확장에 대해 열려있고 수정에 대해서는 닫혀있어야 한다.
- 새로운 동작 추가가 용이하고, 동작 추가 시 기존 코드에 수저을 가할 필요가 없다.
- 확장에 대해 열려있고 수정에 대해서는 닫혀있어야 한다.
- LSP; Liskov Substitution Principle; 리스코프 치환 원칙
- 하위 입은 상위 타입을 대체할 수 있어야 한다.
- ISP; Interface Segregation Principle; 인터페이스 분리 원칙
- 클라이언트의 목적과 용도에 적합한 인터페이스만을 제공해야 한다.
- DIP; Dependency Inversion Principle; 의존 역전 원칙
- 고수준 모듈은 저수준 모듈의 구현에 의존해서는 안 되며, 저수준 모듈이 고수준 모듈에 의존해야 한다.
- SRP; Single Responsibility Principle; 단일 책임의 원칙
- 구성요소
- Class; 클래스
- 공통된 속성과 연산을 갖는 객체의 집합
- Object (or Instance); 객체(혹은 인스턴스)
- 데이터와 데이터를 처리하는 함수를 캡슐화한 하나의 모듈
- Method; 메소드
- 데이터를 이용해 객체가 작동하는 기능
- (+α) Object VS Instance
- Object는 SW 세계에서 구현할 대상, 이를 구현할 설계도가 Class
- 이 설계도에 따라 SW 세계에 구현된 실체가 Instance
- Class; 클래스
- 객체지향의 주요 개념
- Encapsulation; 캡슐화
- 데이터와 데이터를 처리하는 함수를 하나로 묶은 것
- Inheritance; 상속성
- 이미 정의된 상위 클래스의 모든 속성과 연산을 하위 클래스가 계승하는 것
- Polymorphism; 다형성
- 하나의 메세지에 대해, 각 객체가 갖고 있는 고유한 방법대로 응답하는 것
- Information Hiding; 정보은닉
- 다른 객체에 자신의 정보를 숨기는 것
- Abstraction; 추상화
- 불필요한 부분을 생략하는 것
- Encapsulation; 캡슐화
- 클래스 기반 객체생성 방법
- 일반적인 변수의 선언 방식
- ClassName objName;
- 동적 할당방식 (힙 할당방식)
- ClassName * ptrObj = new ClassName;
- 일반적인 변수의 선언 방식
'Study > C++' 카테고리의 다른 글
[C++] Constructor & Destructor (0) | 2023.10.06 |
---|---|
[C++] Information Hiding (0) | 2023.10.06 |
[C++] Structure (0) | 2023.10.06 |
[C++] Class & Object (0) | 2023.10.06 |
[C++] Call by value / Call by reference (0) | 2023.10.06 |