티스토리 뷰

객체 지향과 디자인 패턴
국내도서
저자 : 최범균
출판 : 인투북스 2013.07.05
상세보기

SOLID 설계 원칙 (객체지향 설계 원칙)

1) 단일 책임 원칙 (Single responsibility principle, SRP)

 - 클래스는 한 개의 책임을 가져야 한다.

 - 단일 책임 원칙을 안 지킨다면 ?

    기능이 바뀔 때마다 여러 코드에 영향을 미침 (변화 연쇄적으로 발생) → 재사용 어려움.

 - 메서드를 실행하는 것이 누구인지 확인해보자!

2) 개방 폐쇄 원칙 (Open-closed principle, OCP)

 - 사용되는 기능의 확장에는 열려있어야 하고, 기능을 사용하는 코드의 변경에는 닫혀있어야 한다.

 - 개방 폐쇄 원칙을 안 지킨다면 ?

    다운 캐스팅 한다.

    instanceof와 같은 타입 확인 연산자가 사용되는 곳이 있을 수도 있다.

    비슷한 if-else 블록이 있다.

3) 리스코프 치환 원칙 (Liskov substitution principle, LSP)

 - 상위 타입 객체를 하위 타입의 객체로 치환해도 상위 타입을 사용하는 프로그램은 정상 작동해야 한다.

 - 리스코프 치환 원칙을 안 지킨다면 ?

    직사각형-정사각형 문제

 - 하위 타입은 상위 타입에서 정의한 명세를 벗어나지 않는 범위에서 구현.

4) 인터페이스 분리 원칙 (Interface segregation principle, ISP)

 - 인터페이스는 사용하는 클라이언트를 기준으로 분리해야 한다.

5) 의존 역전 원칙 (Dependency inversion principle, DIP)

 - 고수준 모듈은 저수준 모듈의 구현에 의존하면 안된다. (저수준 모듈이 고수준 모듈에서 정의한 추상 타입에 의존)

(자세한 설명과 예시 : https://github.com/cheese10yun/spring-SOLID/tree/master/docs)

 

DI (Dependency Injection)

 - 생성자 방식

 - 설정 메서드 방식

 

 

댓글