일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 옵저버 패턴
- 싱글톤
- F
- factory method
- designPattern
- builderPattern
- Singleton
- 디자인패턴
- 프로토타입 패턴
- Design Pattern
- Observer Pattern
- PrototypePattern
- 코틀린
- El
- 빌터패턴
- 디자인패턴 #
- Functional Programming
- ㅓ
- 팩토리 메소드
- a
- 추상 팩토리
- r
- 함수형프로그래밍
- Kotlin
- Abstract Factory
- ㅋㅁ
- 추상팩토리패턴
- Today
- Total
목록디자인패턴 (18)
오늘도 더 나은 코드를 작성하였습니까?
정의 생성할 객체들의 타입이 prototype(프로토타입)인 인스턴스로부터 결정되도록 하며, 인스턴스는 새 객체를 만들기 위해 자신을 복제(clone)하게 한다. 즉, 객체로 부터 객체를 생성해야 될 경우 사용하면 좋다. 복제하려는 객체의 concrete class에 의존하지 않아도 된다.추상 팩토리 패턴과는 반대로, 클라이언트 응용 프로그램 코드 내에서 객체를 생성하는 것(creator)를 서브클래스(subclass)에서 하지 않는다.새로운 객체는 일반적인 방법(예를 들어, JAVA에서 new를 사용)을 통하여 객체를 생성(create)할때, 고유의 비용이 주어진 응용 프로그램 상황에 있어서 불가피하게 매우 클 때, 이 비용을 감내하지 않을 수 있게 해준다.복제하려는 객체가 private한 속성이 있거..
정의빌더 패턴은 객체 지향 프로그래밍의 다양한 객체 생성 문제에 대한 유연한 솔루션을 제공하기 위해 설계된 디자인 패턴이다.빌더 디자인 패턴의 목적은 "복잡한 객체의 구성과 표현을 분리하는 것"입니다. 구현예를들어, 자동차와 같은 많은 속성을 가지고 있는 객체가 있다고 생각해보자. 그렇다면, 생성을 하는 과정과 사용함에 있어 여러가지 불편함이 생기게 된다. - 해당 객체를 생성하는 곳에서 자동차 클래스의 속성을 다 알고 있어야 한다.- 너무 많은 속성 중에 일부는 기본값을 제공한다면, 많은 생성자가 오버로딩 되어질 수 있다.(kotlin에서는 parms에 기본값을 제공하는 기능을 제공한다) 위의 2개의 문제를 해결하기 위해 그럼 Builder Patter을 사용해보자! 1. Builder Interfa..
정의소프트웨어 엔지니어링에서 Abstract Factory Pattern(추상 팩토리 패턴)은 Concreate Class(구체적인 클래스)를 지정하지 않고 공통 테마를 갖는 개별 팩토리 그룹을 캡슐화하여 관련 객체의 패밀리(제품군)를 생성하는 방법을 제공하는 디자인 패턴입니다. 클라이언트(객체를 사용하는 곳)에서, Abstract Factory Class를 상속하는 Concreate Class의 객체를 생성한 후, 팩토리의 일반 인터페이스를 사용하여 객체의 패밀리에 속하는 구체적인 객체를 생성하여 준다. 클라이언트는 해당 팩토리의 일반 인터페이스만 사용하기 때문에 각 내부 팩토리로 부터 어떻게 구체적인 객체를 생성해 주는지 알 수 없습니다. Abstract Factory Pattern(추상 팩토리 패..
정의Factory method는 부모(상위) 클래스에 알려지지 않은 구체 클래스를 생성하는 패턴이며. 자식(하위) 클래스가 어떤 객체를 생성할지를 결정하도록 하는 패턴이기도 하다. 부모(상위) 클래스 코드에 구체 클래스 이름을 감추기 위한 방법으로도 사용한다. - 객체를 이용하는 코드로 부터 객체를 생성하는 코드를 분리하여, Loose Coupling(느슨한 결합)을 이루어낸다.- 상속(inheritance)에 많이 의존합니다.- 객체생성의 구현부를 하위 클래스에 위임. 장점- 코드에서 작동할 정확한 객체의 Type을 모르는 경우 사용한다. - 독립적으로 Product 생성 코드를 쉽게 확장할 수 있습니다.- 기존의 코드를 수정하지 않고 새로운 product를 추가하는데 쉽다.- product 생성코드를..