모던 C++ 디자인 패턴

이호용·2022년 12월 15일
0

1. SOIDE 원칙.

단일 책임 원칙(Single responsibility principle) - 약어: SRP
개방 폐쇄 원칙(Open/closed principle) - 약어: OCP
리스코프 치환 원칙(Liskov substitution principle) - 약어: LSP
인터페이스 분리 원칙(Interface segregation principle) - 약어: ISP
의존관계 역전 원칙(Dependency inversion principle) - 약어: DIP

1.리스코프 치환 원칙

지난번에 이해했던 개념이 잘못되었었다.

정정하기위해 다시 글을남김.

리스코프의 원칙은 부모에서 호출하는 모든 동작은 자식에서도 똑같이 구현할수 있어야한 다는개념임.

예를들면 정사각형과 직사각형이 있는데, 직사각형을 부모객체로 하고 자식을 정사각형으로 해서 구현한다면 리스코프 원칙을 지킨거 같지만, 자식은 직사각형을 구현 못함 그래서 원칙에 위반.

올바른 방법은 더 상위 개념을 부모로 설정해야함.
사각형을 부모로하고 자식은 정사각형 직사각형으로 한다. 이런식으로 구현할것.

2. 의존관계 역전 원칙

객체는 저수준의 모듈보다 고수준의 모듈을 상속받아야한다.

고수준 : 인터페이스와 같은 객체의 형태나 추상적인 개념
저수준 : 구체화된 객체.

인터페이스 : 클래스를 작성할 때 기본이 되는 틀

포인터 종류 정리

1. unique point

독점 포인트라고도 하며, 스마트포인터 라고도한다.
스마트 포인트는 프로그램 종료시 자기가 가리키고 있는 주소의 delete를 호출하는 개념이다.

고로 똑같은 주소를 가진 스마트 포인터를 두개 생성하면 double delete가 일어나 에러가 발생한다. 그래서 이름이 unique point 이다.

2. shared point

3. 약한 point

용어 정리

가비지 컬렉터 (Garbage Collector - GC)

0개의 댓글