티스토리 뷰
|
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)
- 생성자 방식
- 설정 메서드 방식
'Book' 카테고리의 다른 글
그림으로 공부하는 IT 인프라 구조 (0) | 2019.10.07 |
---|---|
객체 지향과 디자인 패턴 (Part 3.디자인패턴) (0) | 2019.05.05 |
객체 지향과 디자인 패턴 (Part 1.객체지향) (0) | 2019.04.28 |
- Total
- Today
- Yesterday
- AWS
- 카카오인턴
- cgv
- 최솟값
- 파이팅코리아
- 예매 알림
- FrogJmp
- 맵 api
- 객체지향과 디자인패턴
- 문자열 내 마음대로 정렬하기
- 스프링 부트
- 쇠막대기
- json
- 프로그래머스
- Spring
- 안드로이드 스튜디오
- 알고리즘
- 더 나은 내일
- 완주하지 못한 선수
- API
- 기능개발
- 자바
- codility
- java
- 124 나라의 숫자
- 노션트렐로광고X
- 다음 맵 api
- 타겟 넘버
- 텔레그램
- K번째수
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |