일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- persistance context
- 파이썬
- 자료구조
- Hibernate
- 네트워크
- Python
- MySQL
- 이펙티브자바
- 프로그래머스
- 아두이노
- Jetson
- Java
- 영속성컨텍스트
- 자바ORM표준JPA프로그래밍
- 논문
- 포인트클라우드
- 디자인패턴
- 자율주행
- JPA
- Spring Batch
- cartograhper
- 운영체제
- DeepLearning
- 딥러닝
- 장애물인식
- 배달로봇
- 알고리즘
- 자바
- 논문리뷰
- Database
- Today
- Total
목록GOF (2)
제리 devlog
전략 패턴 이란? 알고리즘 제품군을 정의하고 각각을 캡슐화하여 상호 교환 가능하게 만들자. 전략을 사용하면 알고리즘을 사용하는 클라이언트와 독립적으로 알고리즘을 변경할 수 있다. [GOF] 전략 패턴은 이전에 포스팅한 템플릿 메서드 패턴과 유사하다. 변하지 않는 부분과 변하는 부분이 분리되고 인터페이스를 통해 구현된다. 비즈니스 로직의 실행 시간을 측정하는 예시이다. 여기서 변하는 부분은 비즈니스 로직, 변하지 않는 부분은 실행 시간을 측정하는 부분이다. strategy는 변하는 알고리즘을 담당한다. fun interface Strategy { fun call() } context는 변하지 않는 부분을 의미한다. class Context(private val strategy: Strategy) { pri..
템플릿 메서드 패턴이란? 템플릿 메서드 디자인 패턴의 목적은 다음과 같습니다. > "작업에서 알고리즘의 골격을 정의하고 일부 단계를 하위 클래스로 연기합니다. 템플릿 메서드를 사용하면 하위 클래스가 알고리즘의 구조를 변경하지 않고도 알고리즘의 특정 단계를 재정의할 수 있습니다." [GOF] 좋은 설계는 변하는 것과 변하지 않는 것을 분리하는 것이다. 템플릿 메서드 패턴은 알고리즘의 골격인 템플릿을 제공하고 하위 클래스에서는 알고리즘의 특정 단계를 정의한다. 알고리즘의 특정 단계를 하위 클래스에서 정의하면 알고리즘의 구조를 변경하지 않고 특정 단계를 재 정의할 수 있다. 템플릿 메서드 패턴은 상속을 활용하여 변하는 부분과 변하지 않는 부분을 분리해준다. 비즈니스 로직의 실행 시간을 측정하는 예시이다. 여기..