Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- try width resources
- Infresh
- ESG
- docker
- 과제의 분리
- kubernetes
- 레퍼런스 복사
- sentry
- 부자의그릇
- CSS
- 뉴 컨피던스
- 비메모리 자원
- colllection
- 아웃풋법칙
- 공헌감
- node
- java
- 히든 스토리
- 참조 계수
- 쿠버네티스
- 칭기즈칸의 위대한 장군 수부타이
- 이펙티브 자바
- try-with-resources
- 모두가 기다리는 사람
- 도파민형 인간
- 수부타이
- Container
- 월칙
- apache kafka
- HTML
Archives
- Today
- Total
Hi
SOLID 본문
#SOLID
=> 절차 지향 프로그래밍
OOP
=> 객체 지향 프로그래밍
좋은 설계
SOLID - 로버트 C 마틴(엉클 밥)
'마틴 파울러'
리팩토링: 기능에는 변화 X
구조를 개선하는 작업
SRP: Single Responsibility Principle
=> 단일 책임의 원칙
모듈은 단 하나의 책임을 가져야 한다.
class, 변수, 함수, 패키지
=> 유지보수
=> 이름 => rename
OCP: Open Close Principle
=> 개방 폐쇄의 원칙
=> 목표
모듈은 수정에는 닫혀 있고, 확장에는 열려 있어야 한다.
=> 새로운 기능이 추가되어도 기존 코드는 수정되면 안된다.
LSP: Liskov Substitution Principle
=> 리스코프 대체(치환) 원칙
=> 자식 클래스는 부모 클래스로 대체될 수 있어야 한다.
=> 자식 클래스의 공통의 기능은 부모로부터 비롯되어야 한다.
=> Rect is-a Shape
=> 다형성
ISP: Interface Segregation Principle
=> 인터페이스 분리 원칙
=> 인터페이스?
: 범용 인터페이스 보다 세분화된 인터페이스가 낫다.
; 인터페이스를 이용하면, 교체 가능한 유연한 설계
DIP: Dependency Inversion Principle
=> 의존관계 역전 원칙
=> 클라이언트는 구체적인 클래스가 아닌 추상 클래스나
인터페이스에 의존해야 한다.
=> 약한 결합 / 의존성 주입
'Programming > Java' 카테고리의 다른 글
스택을 만들어보자 (0) | 2018.03.29 |
---|---|
Iterator의 순회 (0) | 2018.03.28 |
추상클래스와 인터페이스의 차이점 (0) | 2018.03.28 |
Iterator (0) | 2018.03.28 |
컴퓨터 네트워크 (0) | 2018.03.28 |