객체지향 5대 원칙 SOLID

2023. 2. 20. 16:53CS

1.SRP - 단일 책임의 원칙(Single Reponsibility Principle)

작성된 클래스는 하나의 기능만 가지며, 클래스가 제공하는 모든 서비스는 그 하나의 책임을 

수행하는데 집중되어야한다.

책임을 적절히 분배함으로써 변경으로 인한 연쇄작용에서 자유로워지고, 코드의 가독성이 향상되며

연쇄작용에서 자유로울수 있따.

 

2.OCP -  개방 폐쇄의 원칙(Open - Close - Principle)

확장에는 열려있어야하고 변경에는 닫혀있어야한다.

 

3.LSP - 리스코브 치환의 원칙(The Liskov Substitution Principle)

서브타입은 언제나 기반타입으로 교체할수 있어야한다. 즉 서브타입은 언제나 기반타입과 호환되어야한다는 뜻이다.

다형성과 확장성을 극대화하려면 하위클래스를 사용하는것보다 상위의 클래스를 사용하는것이 더 좋다. 

 

4.ISP - 인터페이스 분리의 원칙(Interface Segregation Principle)

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

또는 하나의 일반적인 인터페이스보다는 여러개의 구체적인 인터페이스가 더 좋다 라고 정의하기도 한다. 

SRP가 클래스의 단일 책임을 강조한다면 ISP는 인터페이스의 단일책임을 강조한다.

 

5.DIP - 의존성 역전의 원칙(Dependency Inversion Principle)

의존관계의 역전이란 구조적 디자인에서 발생하던 하위레벨 모듈의 변경이 상위레벨 모듈의 변경을 요구하는 위계관계를 끊는 의미의 역전이다. 실제 사용관계는 바뀌지않으며 추상을 매개로 메세지를 주고 받음으로써 관계를 최대한 느슨하게 만드는 원칙이다.

 

'CS' 카테고리의 다른 글

Docker Compose VS Kubernetes  (0) 2023.02.27
객체지향 5대원칙 SOLID by ChatGPT  (0) 2023.02.21
Oracle vs MySQL  (0) 2023.01.27
자바스크립트-this  (0) 2023.01.27
MyBatis  (0) 2023.01.26