wasup
SOLID) 객체지향 개발 5대 원리 본문
반응형
단일책임의 원칙(SRP : Single Responsibility Principle)
작성된 클래스는 하나의 기능만 가진다.
클래스가 제공하는 모든 서비스는 하나의 책임을 수행하는데 집중되어 있어야 한다.
즉, 어떤 변화에 의해 클래스를 변경해야 하는 이유는 오직 하나뿐이어야 한다.
개방폐쇄의 원칙(OCP : Open Close Principle)
확장에는 열려있고, 수정과 변경에는 닫혀있다.
요구사항의 변경이나 추가사항이 발생하더라도 기존 구성요소는 수정이 일어나지 말아야 한다.
기존 구성요소를 쉽게 확장해서 재사용할 수 있어야 한다.
인터페이스와 다형성이라는 개념을 적용하면 이해하기 좋다.
리스코브 치환의 원칙(LSP : The Liskov Substitution Principle)
서브 타입은 언제나 기반 타입으로 교체(호환)할 수 있어야 한다.
서브 타입은 기반 타입이 약속한 규약을 지켜야 한다.
다형성으로 인한 확장 효과를 얻기 위해서 서브 클래스가 기반 클래스와 클라이언트 간의 규약(인터페이스)를 어겨서는 안 된다.(OCP와 연결, LSP는 OCP를 구성하는 구조가 됨.)
인터페이스 분리의 원칙(ISP : Interfase Segregation Principle)
사용하지 않는 인터페이스는 구현하지 말아야 한다.
어떤 클래스가 다른 클래스에 종속될 때 가능한 최소한의 인터페이스만을 사용해야 한다.
의존성역전의 원칙(DIP : Dependency Inversion Principle)
구조적 디자인에서 발생하던 하위 레벨 모듈의 변경이 상위 레벨 모듈의 변경을 요구하는 위계 관계를 끊는 의미의 역전
복잡한 컴포넌트간의 커뮤니케이션 관계를 단순화하기 위한 원칙
*Component : 프로그래밍에 있어 재사용이 가능한 각각의 독립된 모듈
참고 링크 : https://www.nextree.co.kr/p6960/
반응형
'IT etc' 카테고리의 다른 글
URI와 웹 브라우저 요청) URI(URL, URN), 웹 브라우저 (0) | 2021.08.11 |
---|---|
인터넷 네트워크 통신) IP, TCP, UDP, Packet, PORT, DNS (0) | 2021.08.10 |
IntelliJ) 인텔리제이 단축키 (0) | 2021.07.30 |
네트워크) Note (0) | 2021.07.21 |
프로그래밍 언어별 특성 (0) | 2021.07.13 |
Comments