[Study] OOP 5원칙 (SOLID)

LimJaeJun·2023년 10월 24일

Study

목록 보기
2/16

📌 S : 단일 책임 원칙

단일 책임 원칙(SRP - Single Responsibility Principle)
객체는 오직 하나의 책임을 가져야 한다.
이 규칙을 지키지 않으면 어떠한 클래스가 무슨 일을 하는 클래스인지 파악하기 어려워지며 유지보수하기 까다로워진다.

ex)
블로그 글 관리 클래스에서 글 작성, 글 조회, 글 삭제 등 다양한 작업이 수행된다면, 이를 단일 책임 원칙에 따라 각 작업을 별도의 클래스로 분리

📌 O : 개방 폐쇄 원칙

개방 폐쇄 원칙(OCP - Open/Closed Principle)
확장에는 개방적이고 수정에는 폐쇄적이여야 한다.

ex)
플러그인 시스템을 통해 새로운 기능을 추가하거나 수정하지 않고 확장

📌 L : 리스코프 치환 원칙

리스코프 치환 원칙(LSP - Liskov Substitution Principle)
하위 클래스는 상위 클래스와 교체 가능해야 한다.

ex)
도형(Shape) 클래스에서 넓이를 구하는 함수를 만들고, 사각형(Square) 및 원(Circle) 클래스에서 세부 구현을 수행하면서, 상속 및 다형성을 활용하여 코드를 유지보수 및 확장 가능

Shape square = new Square();
Shape circle = new Circle();
square.GetArea();
circle.GetArea();

📌 I : 인터페이스 분리 원칙

한 클래스는 자신이 사용하지 않는 메서드에 의존하도록 만들어서는 안된다.

ex)
여러 인터페이스를 하나의 클래스에서 구현할 때, 해당 클래스가 사용하지 않는 메서드를 포함하지 않도록 인터페이스를 분리

📌 D : 의존성 역전 원칙

상위 수준의 모듈은 하위 수준의 모듈에 의존하지 않으며, 둘 다 추상화에 의존해야 한다.

ex)
고수준 모듈(주문 서비스)과 저수준 모듈(데이터베이스) 모두 추상화(인터페이스)에 의존

profile
Dreams Come True

0개의 댓글