본문 바로가기
정리글

객체지향의 5가지 원칙 - SOLID 원칙

by lch831009 2019. 3. 24.

1. OCP ( Open Close Principle )

개방 폐쇄의 원칙은 특정 클래스는 그 클래스를 수정하지 않으면서 확장이 가능해야 한다는 원칙이다. 객체지향에서 OCP 는 상속을 통한 구현과, 포함을 통한 구현이 있다.


2. LSP ( Liskov Substitution Principle )

리스코프 치환 원칙은 컴퓨터 프로그램에서 자료형 S가 자료형 T의 하위형이라면 필요한 프로그램의 속성의 변경없이 자료형 T의 객체를 자료형 S의 객체로 교체(치환)할 수 있어야 한다는 원칙이다.


3. DIP ( Dependency Inversion Principle )

의존 역전의 원칙은 구현 클래스가 아닌 인터페이스를 사용하라는 규칙이다. 구현되는 클래스는 자주 변경될 가능성이 높기 때문에 변경 가능성이 상대적으로 적은 추상타입이나 메서드에 의존하면 변화에 따른 영향을 최소화 할 수 있다.


4. SRP ( Single Responsibility Principle)

단일 책임의 원칙은 객체는 단 한개의 책임만 가져야 한다는 규칙이다. 두 개 이상의 책임을 갖는 경우 변하는 책임에 의해 변하지 않는 책임도 영향을 받아서 연쇄적인 수정이 발생할 가능성 또는 위험성을 미연에 방지하는데 있다.


5. ISP ( Interface Surrogate Principle )

인터페이스 분리 원칙으로 한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 말아야 한다는 원리이다. 즉, 어떤 클래스가 다른 클래스에 종속될 때에는 가능한 최소한의 인터페이스만들 사용해야 한다는 것이다.