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
- 어노테이션
- ORM
- @temproal
- 작업명중복
- RESTfull API
- formmatted
- 프레젠테이션 계층
- spring
- JPA
- 동기
- 스프링 부트 테스트
- 토큰기반 인증
- MSA
- http
- IPC
- ./gradlew docker
- 스프링부트 구조
- 세션기반 인증
- 스프링
- ./gr
- 비동기
- java I/O
- 스프링부트 계층구조
- Java
- 퍼시스턴스 계층
- 로그인/로그아웃
- 로그인 인증 흐름
- 스프링부트
- 비즈니스 계층
- JWT
Archives
- Today
- Total
[DEV] J-Jay
다형성(Polymorphism) 본문
728x90
다형성이란?
프로그램 언어의 각 요소들(상수, 변수, 식, 오브젝트, 함수, 메소드 등)이 다양한 자료형(type)에 속하는 것이 허가되는 성질을 가리킨다. (by.위키피디아)
다형성 예시
UserRepository라는 사용자의 데이터에 대한 인터페이스가 있고,
이것의 DB를 초기에는 MySQL로 구현했다고 가정하자.
근데 배포하기 하루전 DB를 Oracle로 바꾸는 일이 생겼다고 할때
처음부터 다시 개발하지 뭐...
이런상황에서 사용할 수 있는게 다형성이다.
interface UserRepository {
public createUser()
public updateUser()
public deleteUser()
public getUser()
}
MySql
class UserRepositoryMySQL implements UserRepository {
@Override
createUser() { ... }
...
@Override
getUser() { ... }
}
Oracle
class UserRepositoryOracle implements UserRepository {
@Override
createUser() { ... }
...
@Override
getUser() { ... }
}
즉, 위와 같이 하나의 개념(UserRepository 를 DB로 저장)을 서로 다른 N개(MySql로 저장, Oracle 저장)의 개념으로
만드는 것을 을 다형성이라고 한다.
'Back-end > Java' 카테고리의 다른 글
예외(Exception) (0) | 2024.06.01 |
---|---|
내부 클래스(Inner Class) (0) | 2024.06.01 |
상속(Inheritance) (0) | 2024.05.19 |
Java 17 주요변화 (0) | 2023.08.31 |
Java I/O - 2 (0) | 2023.05.02 |