본문 바로가기

C++

객체지향 - SOLID 개발 5대 원리

S - SRP(Single responsibility principle) 단일 책임 원칙

- 모든 클래스는 단 하나의 책임을 가져야한다.

- 예를 들면 상점 기능을 구현함에 있어서 '구매', '판매' 기능과 GUI 기능은

  별도로 처리해야한다. 

 

O - OCP(Open Closed Principle) 개방 - 폐쇄 원칙

- 확장에 대해서는 개방 되어 있어야 하지만, 수정에 대해서는 폐쇄 되어야 한다.

- 예를 들면 '캐릭터'를 구현 시 구현해야 하는 캐릭터마다 행동이 다르다면 하위 클래스에서

  별도로 구현할 수 있도록 한다. (오버라이딩)

 

L - LSP(liskov substitusion Principle) 리스코프 치환 법칙

- 문제 없이 업캐스팅(Up-Casting, 부모의 객체로 자식의 객체를 가르킬 수 있는 것)이 되야한다.

 

I - ISP(Interface Segregation Principle) 인터페이스 분리 원칙

- 자신이 이용하지 않는 클래스를 의존하지 않아도 된다. 또는 이런식으로 구현을 하지 말아야한다는 것.

- 예를 들어서 '대화'만을 위해 생성된 NPC에게는 공격과 같은 기능은 필요가 없기에 이에 영향을

  받지 말아야한다. (불필요한 클래스를 상속받지 않는다.)

  

D - DIP(Dependency Inversion Principle) 의존성 역전 법칙

- 상위 클래스(부모)는 하위 클래스(자식)에 의존하면 안된다.

- 상속관계에서 부모가 자식에게 의존하여 사용하는 말도 안되는 상황을 만들면 안된다.

'C++' 카테고리의 다른 글

다중 상속(Diamond of Death)의 문제점  (0) 2019.07.10
상속을 사용하는 의미  (0) 2019.07.09
순수 가상 함수(Pure Virtual Function)  (0) 2019.07.09
가상 함수 테이블(Virtual Function Table)  (0) 2019.07.09
객체지향이란?  (0) 2019.07.09