📌 공부 계기
객체 지향 프로그래밍을 한다면! 이를 지키기 위한 5가지 원칙에 대해 알 필요가 있기에 공부! 일단은 가장 기본적인 사항만 먼저 정리!
📍SOLID란?
객체 지향의 5대 원칙으로 각 원칙의 첫 머릿글자를 따서 SOLID라고 합니다.
S : SRP : Single Responsibility Principle : 단일 책임 원칙
O : OCP : Open-Colosed Principle : 개발-패쇄 원칙
L : LSP : Liskov Substitution Principle : 리스코프 치환 원칙
I : ISP : Interface Segregation Principle : 인터페이스 분리 원칙
D : DIP : Dependency Inversion Principle : 의존성 역전 원칙
📍SRP : Single Responsibility Principle : 단일 책임 원칙
- 한 클래스는 단 한가지의 책임(변경 이유)를 가져야한다.
여기서 변경을 위한 이유 책임이라 하며, 변경의 이유가 여러가지가 생겼다면 한가지 이상의 책임을 맡고 있는 것이다.
- 이는 응집도와 관련이 있으며, 응집도는 하나의 클래스가 하나의 추상적인 개념을 나타내며, 그 클래스의 목적과 의미가 한 줄로 기술 할 수 있어야 한다.
📍OCP : Open-Colosed Principle : 개발-패쇄 원칙
- 확장에는 열려있어야하고 변경(코드 수정)에는 닫혀있어야 한다.
이는 시스템을 확장하기는 쉬워야 하는데 변경으로 인해 시스템에 너무 큰 영향을 줘선 안된다는 목표를 가지고 설계해야한다.
- 코드를 수정하려면 상속해서 수정?
📍LSP : Liskov Substitution Principle : 리스코프 치환 원칙
- 상위 타입의 객체를 하위 타입의 객체로 치환했다고 하더라도 상위 타입으로 동작하던 기존 프로그램은 정상적으로 동작해야하는 원칙이다.
📍ISP : Interface Segregation Principle : 인터페이스 분리 원칙
- 클라이언트가 사용하지 않는 메소드에 의존하지 않아야한다는 원칙이다.
📍DIP : Dependency Inversion Principle : 의존성 역전 원칙
- 상위 수준의 모듈은 하위 모듈에 의존해서는 안되며, 둘 모두 추상화에 의존해야 한다.
- 추상화가 구체적인 사항에 의존해서는 안되며 구체적인 사항이 추상화에 의존해야 한다.
➕ 공부자료
'Computer Science > Basic' 카테고리의 다른 글
테스트 코드 란? (0) | 2022.12.10 |
---|---|
Call by Value vs Call by Reference (0) | 2022.12.09 |
컴퓨터 과학 CS - C 기초 (2) | 2022.10.23 |
콘솔(Console), 터미널(Terminal), 쉘(Shell), 프롬프트(Prompt) (0) | 2022.10.23 |
컴퓨터 과학 CS - 스크래치 (0) | 2022.10.20 |