Programming/CS
-
[SOLID] 리스크프 치환 원칙 (Liskov Subsitution Principle)Programming/CS 2021. 12. 19. 20:13
리스코프 치환 원칙 (Liskov Substituion Principle) 만약 S가 T의 서브 타입이면, T는 S의 타입으로 대체될 수 있다는 원칙이다 예를들어 고양이(Cat)가 있으며, 그 고양이의 서브타입인 검은 고양이(Black Cat)와 하얀 고양이(White Cat)가 있다고 하자. 그럼 고양이(Cat)는 검은 고양이가 될 수도 있으며 하얀 고양이가 될 수 있다는 원리이다. 검은 고양이랑 하얀 고양이가 가지고 있는 공통된 속성들은 모두 고양이에게서 파생되었기 때문에 이들의 프로토타입인 고양이(Cat)는 이의 파생된 모든 요소에 대해서 대체가 가능하게 된다. 코드로 예를 들어보면, 그냥 고양이를 정의한 클래스가 있고 그 클래스에는 고양이가 말을 하는 기능인 speak 함수가 들어가 있다. 그리고..
-
[SOLID] 개방 폐쇠 원칙 (Open Closed Principle)Programming/CS 2021. 12. 16. 07:25
OPEN CLOSED PRINCIPLE 개방 폐쇠 원칙 (OCP) 확장에는 열려있으나 수정에는 닫혀있어야 하는 행동 원칙 개방 폐쇠 원칙이 준수되지 않은 클래스 예시 여러 씬들을 관리하는 namespace NO_OCP { class NormalScene { public: explicit NormalScene(std::string sceneName) : sceneName(std::move(sceneName)) { } std::string GetName() const { return sceneName; } private: std::string sceneName; }; class DungeonScene { public: explicit DungeonScene(std::string sceneName) : sce..
-
[SOLID] 단일 책임 원칙 (Single Responsibility Principle)Programming/CS 2021. 12. 14. 23:17
SOLID DESIGN PRINCIPLES 의 첫번째 원칙 : SINGLE RESPONSIBILITY (단일 책임 원칙) 컴퓨터의 프로그램에서의 Module, Class, Function은 하나의 역할만 수행해야 되는 원칙이다. 예시) Function int add(const int& num1, const int& num2) // 하나의 역할만 수행함 { return num1 + num2; } void printNum(const int& num) { std::cout