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 |
31 |
Tags
- spring
- 퍼시스턴스 계층
- ./gradlew docker
- 비즈니스 계층
- RESTfull API
- formmatted
- 로그인/로그아웃
- ORM
- 세션기반 인증
- 토큰기반 인증
- 스프링 부트 테스트
- JWT
- 작업명중복
- 동기
- 스프링
- 프레젠테이션 계층
- http
- 스프링부트
- MSA
- ./gr
- java I/O
- 로그인 인증 흐름
- JPA
- 스프링부트 계층구조
- 어노테이션
- Java
- 비동기
- @temproal
- IPC
- 스프링부트 구조
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 |