객체지향 설계 원칙 (SOLID 원칙) 및 디자인 패턴 정리
현재 작성중인 글입니다.
객체지향 설계 원칙 (SOLID 원칙)
단일 책임 원칙 (SRP)
클래스는 하나의 책임만 가져야 합니다. 각 클래스는 여러 함수를 가질 수 있지만, 하나의 역할을 수행해야 합니다.
단일 책임 원칙 위반 예시
한 클래스에 DB 저장, 이메일 전송, 로그 출력 등 여러 역할의 함수가 작성된 경우
각 기능 변경 시 클래스 전체가 수정되어 다른 기능에 영향받을 수 있어 SRP 위반입니다.
그 결과, 유지보수 및 재사용이 어렵고 변경에 취약한 코드가 됩니다.
개발-폐쇄 원칙 (OCP)
각 클래스가 확장에는 열려있고, 변경에는 닫혀 있어야 합니다.
리스코프 치환 원칙 (LSP)
자식 클래스는 부모 클래스로 교체 가능해야 합니다.
인터페이스 분리 원칙 (ISP)
특정 클라이언트를 위한 인터페이스는 최소한으로 제공해야 합니다.
의존 역전 원칙 (DIP)
고수준 모듈은 저수준 모듈에 의존하면 안 되고, 둘 다 추상화 클래스에 의존해야 합니다.