Design Pattern(3)
-
Strategy(전략) 패턴
[목차] 1. 전략패턴에 대해 알아보자 2. 전략패턴은 왜 필요할까? 3. 코드로 구현해보자 3.1 파트너 수수료 3.2 파트너 수수료 코드 설명 3.3 새로운 요구사항 "딜러라는 파트너 추가해주세요!" 3.4 새로운 요구사항에 맞추어서 코드 설명 4. 전략패턴으로 구현한 파트너 수수료금액 구하기 4.1 전략패턴 다이어그램 4.2 전략패턴 Source code 4.3 전략패턴 Source code_Dealer 추가 5. 결론 1. 전략패턴에 대해 알아보자 전략패턴(StrategyPattern)은 알고리즘군을 정의하고 캐슐화해서 각각의 알고리즘군을 수정해서 쓸 수 있게 해줍니다. 전략패턴을 사용하면 클라이언트로부터 알고리즘을 분리해서 독립적으로 변경할 수 있습니다. - 헤드퍼스트 디자인 패턴 60p - 헤..
2024.02.10 -
Template Callback Pattern(템플릿 콜백 패턴) - 견본 /회신 패턴
[목차] 1. 게시물을 작성한 이유 2. 설명 3. 예제 4. Refactoring 5. 결론 6. 추가 : System.out.println(제외하기) 1. 게시물을 작성한 이유 회사에서 운영을 하면서 여러가지 요구조건이 있을때 참으로 아쉬운 점이 많았다. 그 아쉬운점은 여러가지 요구사항을 듣고 그것을 패턴화를 못했기 때문이다. 물론 지식적인 부분에 부족한 점이 있을 수 있지만, 공부를 한 부분도 딱 떠오르지가 않았다. 마침 '스프링 객체지향과 원리' 라는 책을 읽었는데 거기서 스프링이 자주 사용하는 템플릿콜백 패턴이라고 해서 블로그 글을 작성하려고 한다. 2. 설명 템플릿 콜백 패턴에 대해서 설명하겠다. 스프링의 3대 프로그래밍 모델 중 하나인 DI에서 사용하는 특별한 형태의 전략패턴이다. 템플릿 콜..
2024.01.11 -
Builder Pattern
디자인 패턴 첫번째 포스팅이다. 내가 Builder Pattern을 처음으로 작성한 이유는 회사에서 적용한 첫 패턴이기 때문이다. [문제점] 회사에서 개발을 하다가 문득 문제점을 발견하였다. 그것은 불변객체로 만드려고 하다보니 생성자에 파라미터가 너무 많아서 순서대로 넣어야하는데 다행히 intellij는 각 필드의 값이 어떤 것을 의미하는지 보여주지만..이클립스를 커스텀한 B** 프레임워크는..그런것을 지원하지 않았다.. 그래서 테스트를 하는데 자꾸 이상한 값이 잘못 들어간 버그가 발견되었다. 예를 들면 아래와 같은 Account class가 있을때 생성자로 불변객체로 만들었다. package org.example.example; public class Account { private final Stri..
2023.10.09