일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 자바 가비지컬렉션
- 객체지향다형성
- 프로젝트회고
- 자바리스트정렬
- webrtc
- node의존성주입
- 자바스크립트reduce
- 우선순위큐자바
- 자바foreach
- 프로그래머스도둑질
- 팀프로젝트
- Programmers도둑질
- 자바stream
- 자바스크립트foreach
- 객체지향solid
- 자바배열정렬
- 자바스크립트map
- 자바reduce
- 자바Comparable
- 자바filter
- 클라우드타입
- 모놀리틱 아키텍처
- 프로그래머스가장큰수
- 스프링핵심요소
- 자바Comparator
- Programmers가장큰수
- openvidu
- 객체지향추상화
- 도둑질자바
- 자바스크립트filter
- Today
- Total
I'm pine thank you and you?
객체 지향 프로그래밍에 대해서 본문
캡슐화
정보 은닉: 필요 없는 정보는 외부에서 접근하지 못하도록 제한
👉 접근 지정자
높은 응집도, 낮은 결합도로 유연함과 유지보수성 증가
추상화
여러 개의 객체가 공통된 모양을 갖는 경우 이 공통된 모양을 클래스로 정의해두고 사용하는 것
👉 클래스, 인스턴스
상속
하위 클래스(derived class)가 상위 클래스(based class)의 모든 것을 물려받는 것
👉 코드 중복 방지
기존 상위 클래스에 근거하여 새롭게 클래스와 행위를 정의할 수 있게 도와주는 개념
👉 상위 클래스 내용을 확장 하고자 할 때
다형성
형태가 같은데 다른 기능을 하는 것을 의미
동일한 메시지에 대하여 다르게 반응하는 성질
ex)
여자가 숫자 1, 2 입력 → 1+2 출력
남자가 숫자 1, 2 입력 → 1*2 출력
개별적인 함수를 2개를 만들지 않고,
“인자값을 받아 특정한 결과값을 출력한다”라는 *공통적인 행위*를 미리 정의해두고 *객체에 따라 행동을 달리*하도록 하는 것이 다형성
오버라이딩, 오버로딩
SOLID 원칙
S 단일 책임 원칙
- 객체는 단 하나의 책임만을 가져야한다.
- 어떤 변화에 의해 클래스를 변경해야 하는 이유는 오직 하나뿐이어야 한다.
O 개방 폐쇄 원칙
- 기존 코드를 변경하지 않으면서 기능을 추가할 수 있도록 설계되어야 한다.
L 리스코프 치환 원칙
- 자식 클래스는 최소한 자신의 부모 클래스에서 가능한 행위는 수행할 수 있어야한다.
I 인터페이스 분리 원칙
- 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.
- 인터페이스가 명확해지고, 대체 가능성이 높아지기 때문에
D 의존관계 역전 원칙
- 의존 관계를 맺을 때 변화하기 쉬운 것 또는 자주 변화하는 것보다는 변화하기 어려운 것, 거의 변화가 없는 것에 의존하라.
- 쉽게 이야기하면, 구현 클래스에 의존하지 말고, 인터페이스에 의존하라는 뜻
'CS' 카테고리의 다른 글
[Spring] Spring 핵심요소 - IoC, DI, AOP, PSA (1) | 2023.07.10 |
---|---|
[JAVA] Garbage Collector 개념, 알고리즘, 원리 (0) | 2023.06.19 |
[DB] Redis 개념, 특징 (0) | 2023.03.22 |
WebRTC가 무엇일까? (용어, 샘플, openvidu) (0) | 2023.03.04 |
[아키텍처] MSA / 멀티모듈 단일프로젝트? 단일모듈 멀티프로젝트? (0) | 2023.02.12 |