CS 과제 정리
[CS] 객체지향 프로그래밍 5가지 설계 원칙
thisnorm
2025. 1. 9. 18:05
1. 단일 책일의 원칙(Single Responsibility Principle)
- 클래스와 모듈은 하나의 책임 또는 기능만을 가지고 있어야 한다
- 클래스에 비즈니스와 관련 없는 기능이 두 개 이상 포함되어 있으면 책임이 단일하지 않 으므로 단일 기능을 가진 여러 개의 클래스로 분할되어야 한다
2. 개방 폐쇄 원칙(Open Closed Principle)
- 확장할 때는 개방, 수정할 때는 폐쇄의 원칙. 새로운 기능 추가시, 기존의 모듈, 클래스, 함수를 수정하기 보다 기존 코드를 기반으로 모듈, 클래스, 함수 등을 추가하는 방식으로 코드를 확장해 야 함
3. 리스코프 치환 원칙(Liskov Substitution Principle)
- 만약 S가 T의 하위 유형인 경우, T유형의 객체는 프로그램을 중단하지 않고도 S유형의 객체로 대체될 수 있다.
- 하위 유형 또는 파생 클래스의 객체는 프로그램 내에서 상위 클래스가 나타나는 모든 상황에 서 대체 가능하며, 프로그램이 원래 가지는 논리적인 동작이 변경되지 않으며 정확성도 유지된
- 부모 객체와 자식 객체가 있을 때 부모 객체를 호출하는 동작에서 자식 객체가 부모 객체를 완전히 대체할 수 있다는 원칙 → 인터페이스 규약을 지키고 다형성을 지키자
4. 인터페이스 분리 원칙(Interface Segregation Principle)
- 클라이언트가 자신이 이용하지 않는 메서드에 의존하지 않아야 한다는 원칙
- 필요한 기능만을 제공하는 더 작고 구체적인 인터페이스를 만들어서 구현하게 해야 한다. 주된 목적은 클래스가 사용하지 않는 메서드들 때문에 불필요하게 복잡해지는 것을 피하는 것이다.
5. 의존 역전 원칙(Dependency Inversion Principle)
- 객체에서 어떤 클래스를 참조해서 사용해야 하는 상황이 생긴다면, 그 클래스를 직접 참조하는 것이 아니라 그 대상의 상위 요소(추상 클래스 또는 인터페이스)로 참조하라는 원칙