본문 바로가기
IT기술노트/소프트웨어공학

객체지향 설계원칙

by 비트코기 2021. 1. 31.

SOLID


I. 유지보수와 확장이 쉬운 시스템 설계, 객체지향 설계원칙의 개요

가. 객체지향 설계원칙의 정의

   - 로버트 마틴에 의해 명명된 객체지향 프로그래밍의 설계의 5가지 원칙으로 시간이 지나도 유지보수와 확장이 쉬운 시스템 구축 원칙

나. 객체지향 5가지 설계원칙 항목

   - SRP, OCP, LSP, ISP, DIP


II. 객체지향의 5가지 설계원칙 (SOLID원칙)

원칙

구분

설명

SRP

명칭

단일 책임의 원칙 (Single Responsibility Principle)

정의

하나의 클래스는 하나의 책임만을 가져야 한다

개념도


-
하나의 책임만 가지고 있는 클래스로 세분화하여 생성

OCP

명칭

개방 폐쇠의 원칙 (Open Close Principle)

정의

상하 관계인 확장은 열려 있고 수평 관계인 변경은 닫혀 있어야한다.

개념도


-
수직관계(is-a)는 파생 클래스 확장 및  수평관계(has-a)는 영향을 받지 않는다.

LSP

명칭

리스코프 치환의 원칙 (Liskov Substitution Principle)

정의

부모 클래스 대신 자식 클래스를 넣어도 잘 구동되어야 한다.

개념도


-
공통된 구현 메소드를 인터페이스로 만들어 상속하여 사용

ISP

명칭

인터페이스 분리의 원칙 (Interface Segregation Principle)

정의

클라이언트가 사용하지 않는 메소드는 의존 관계가 있으면 안된다.

개념도

- 인터페이스의 의존 관계를 최소화하여 상속 구현

DIP

명칭

의존 관계 역전 원칙 (Dependency Inversion Principle)

정의

상위 모듈은 하위 모듈에 종속적이지 않아야 한다.

개념도

- 스노우타이어 구체 클래스를 인터페이스 형태로 바꾸어 종속 탈피

 ㄱ

반응형

'IT기술노트 > 소프트웨어공학' 카테고리의 다른 글

UML 2.0  (0) 2021.01.31
UML(Unified Modeling Language)  (0) 2021.01.31
다형성 (Polymorphism)  (0) 2021.01.31
객체지향 (Object-Oriented)  (0) 2021.01.31
모듈화 (Modularity)  (0) 2021.01.31
소프트웨어 설계 (Software Design)  (0) 2021.01.31
도메인공학  (0) 2021.01.31
페르소나 (Persona)  (0) 2021.01.31

댓글