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
- ㅋㅁ
- El
- designPattern
- 싱글톤
- 디자인패턴
- 추상 팩토리
- 코틀린
- 함수형프로그래밍
- F
- builderPattern
- 팩토리 메소드
- 빌터패턴
- Observer Pattern
- Functional Programming
- ㅓ
- 디자인패턴 #
- factory method
- PrototypePattern
- 옵저버 패턴
- Design Pattern
- 프로토타입 패턴
- Singleton
- a
- Kotlin
- 추상팩토리패턴
- r
- Abstract Factory
Archives
- Today
- Total
오늘도 더 나은 코드를 작성하였습니까?
SimpleFactory pattern 본문
SimpleFactory는 하나의 디자인 패턴이라 보기 힘들지만 자주 사용되고 중요하다.
객체를 만들어 반환하는 함수를 (생성자 대신) 제공하여 초기화 과정을 외부에서 보지 못하게 숨기고 반환 타입을 제어하는 방법.
객체를 사용하는 측에서 팩토리를 이용해서 필요한 원재료 및 생성하려는 객체를 주문하면 그것을 팩토리가 생성해서 제공하여 클라이언트 는 구체적인 객체 생성 로직을 알 필요가 없기 때문에 의존성을 낮아진다.
fun main() {
val iceCream: IceCream = IceCreamFactory.creator(CHOCOLATE)
println(iceCream)
}
abstract class IceCream()
class ChocoLateIceCream() : IceCream(){
override fun toString(): String {
return "초코 아이스크림"
}
}
class StrawberryIceCream() : IceCream(){
override fun toString(): String {
return "딸기 아이스크림"
}
}
class VanillaIceCream() : IceCream(){
override fun toString(): String {
return "바닐라 아이스크림"
}
}
enum class IceCreamMaterial {
STRAWBERRY,
CHOCOLATE,
VANILLA,
}
class IceCreamFactory{
companion object {
fun creator(material: IceCreamMaterial): IceCream =
when (material) {
STRAWBERRY -> {
StrawberryIceCream()
}
CHOCOLATE -> {
ChocoLateIceCream()
}
VANILLA -> {
VanillaIceCream()
}
}
}
}
'디자인패턴 > 생성패턴' 카테고리의 다른 글
Prototype Pattern(feat. kotlin) (0) | 2024.06.10 |
---|---|
Builder Pattern(feat. kotlin) (0) | 2024.06.06 |
Abstract Factory Pattern 추상 팩토리 패턴 (feat. kotlin) (0) | 2024.06.04 |
Factory Method Pattern 팩토리 메소드 패턴 (feat. kotlin) (1) | 2024.06.02 |
Singleton pattern 싱글톤 패턴(feat. kotlin) (0) | 2024.05.30 |