인스턴스를 하나만 만들 수 있으며 새로운 인스턴스 생성 요청 시 이미 만들어진 인스턴스를 전달
장점
하나의 인스턴스만 존재하므로 고정된 메모리 영역을 사용하며 메모리 낭비를 방지할 수 있다
해당 인스턴스를 통해 데이터 공유가 쉽다
단점
테스트가 어렵다
여러 곳에서 사용하기 때문에 내부 데이터가 쉽게 변하기 때문에 변인통제가 쉽지 않다
클라이언트가 객체에 의존하게 된다
내부에서 새로운 인스턴스를 생성을 시도해서 만들어진 인스턴스를 가져오는 방식 때문에 의존성이 생긴다
-> 컨테이너를 활용해서 의존성 주입을 하면 해결 가능
여러 곳에서 인스턴스 참조 시에 동시성 문제가 발생할 수 있다
자식 클래스를 만들 수 없다
내부 상태를 변경하기 어렵다
'기본' 카테고리의 다른 글
| Docker (0) | 2023.03.11 |
|---|---|
| ORM / SQL (0) | 2023.02.27 |
| 프로그래밍 언어 및 패러다임 (0) | 2023.02.12 |
| 의존성 주입(Dependency Injection) (0) | 2023.02.12 |
| HTTP (0) | 2023.02.04 |
인스턴스를 하나만 만들 수 있으며 새로운 인스턴스 생성 요청 시 이미 만들어진 인스턴스를 전달
장점
하나의 인스턴스만 존재하므로 고정된 메모리 영역을 사용하며 메모리 낭비를 방지할 수 있다
해당 인스턴스를 통해 데이터 공유가 쉽다
단점
테스트가 어렵다
여러 곳에서 사용하기 때문에 내부 데이터가 쉽게 변하기 때문에 변인통제가 쉽지 않다
클라이언트가 객체에 의존하게 된다
내부에서 새로운 인스턴스를 생성을 시도해서 만들어진 인스턴스를 가져오는 방식 때문에 의존성이 생긴다
-> 컨테이너를 활용해서 의존성 주입을 하면 해결 가능
여러 곳에서 인스턴스 참조 시에 동시성 문제가 발생할 수 있다
자식 클래스를 만들 수 없다
내부 상태를 변경하기 어렵다
'기본' 카테고리의 다른 글
| Docker (0) | 2023.03.11 |
|---|---|
| ORM / SQL (0) | 2023.02.27 |
| 프로그래밍 언어 및 패러다임 (0) | 2023.02.12 |
| 의존성 주입(Dependency Injection) (0) | 2023.02.12 |
| HTTP (0) | 2023.02.04 |