티스토리 뷰
반응형
🚀 스프링에서 디자인 패턴의 중요성
디자인 패턴
은 실제 개발 현장에서 비즈니스 요구 사항을 프로그래밍으로 처리하면서 만들어진 다양한 해결책 중에서 많은 사람들이
인정한 가장 효율적인 예시를 정리한 패턴의 집합이다.
🌠 팩터리 메서드 패턴 - 의존 역전 원칙(DIP)
객체 지향에서 팩터리
는 객체를 생성한다
결국 팩터리 메서드
는 객체를 생성 반환하는 메서드 이다.
더 나아가 패턴
이라는 접미사가 따라온다면 상위클라스에서 생성한 메서드를
하위클라스에서 오버라이딩 하여 객체를 반환하게 하는 것을 의미한다.
싱글톤 패턴 - 적용 후
public abstract class Animal {
// 추상 팩터리 메서드
abstract AnimalToy getToy();
}
public abstract class AnimalToy {
abstract void identify();
}
public class Dog extends Animal {
// 추상 팩터리 메서드 오버라이딩
@Override
AnimalToy getToy() {
return new DogToy();
}
}
//팩터리 메서드가 생성할 객체
public class DogToy extends AnimalToy {
public void identify() {
System.out.println("나는 테니스공! 강아지의 친구!");
}
}
public class Cat extends Animal {
// 추상 팩터리 메서드 오버라이딩
@Override
AnimalToy getToy() {
return new CatToy();
}
}
//팩터리 메서드가 생성할 객체
public class CatToy extends AnimalToy {
@Override
public void identify() {
System.out.println("나는 캣타워! 고양이의 친구!");
}
}
public class Driver {
public static void main(String[] args) {
// 팩터리 메서드를 보유한 객체들 생성
Animal bolt = new Dog();
Animal kitty = new Cat();
// 팩터리 메서드가 반환하는 객체들
AnimalToy boltBall = bolt.getToy();
AnimalToy kittyTower = kitty.getToy();
// 팩터리 메서드가 반환한 객체들을 사용
boltBall.identify();
kittyTower.identify();
}
}
🌠 정리
오버라이드된 메서드가 객체를 반환하는 패턴



🧾 Reference
반응형
'SPRING 🍃 > 디자인패턴' 카테고리의 다른 글
디자인 패턴 - 탬플릿 콜백 패턴 (0) | 2022.04.12 |
---|---|
디자인 패턴 - 템플릿 메서드 패턴 (0) | 2022.04.11 |
디자인 패턴 - 전략 패턴 (0) | 2022.04.10 |
디자인 패턴 - 싱글톤 패턴 (0) | 2022.04.09 |
디자인 패턴 - 데코레이터 패턴 (0) | 2022.04.08 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- ajax
- Solid
- 알고리즘
- 면접
- 자바
- spring-cloud
- CS
- 그래프
- 릿코드
- 프로그래머스
- 백준
- 디자인패턴
- security
- java
- 스프링
- JPA
- springboot
- docker
- Algorithm
- nginx
- C언어
- 스프링부트
- Matlab
- OOP
- 매트랩
- 수학
- kakao
- Spring
- interview
- 자격증
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함