
템플릿이란 문자 모양으로 구멍이 뚫려있는 얇은 플라스틱 판을 말한다. 그 구멍을 따라 펜으로 그리면 손으로도 반듯한 문자를 쓸 수 있다. 템플릿의 구멍을 보면 어떤 모양의 문자인지는 알 수 있지만, 실제로 어떤 문자가 될지는 필기구에 의해 결정된다. 템플릿 메서드 패턴이란 이 패턴은 템플릿의 기능을 가진 패턴이다. 상위 클래스쪽에 해당하는 메소드가 정의되어 있고, 그 메서드의 정의 안에는 추상 메서드가 사용되고 있다. 따라서 상위 클래스의 프로그램만 보면 추상 메서드를 어떻게 호출하고 있는지 알 수 있지만, 최종적으로 어떤 처리가 수행되는지는 알 수 없다. 추상 메서드를 실제로 구현하는 것은 하위 클래스이다. 하위 클래스 측에서 메서드를 구현하면 구체적인 처리가 결정된다. 서로 다른 하위 클래스가 서로 ..
‘개발자가 반드시 정복해야 할 객체 지향과 디자인 패턴' 책을 보고 정리한 글입니다. 장기 고객 할인으라든가 신규 고객 할인과 같이 고객의 상태에 따라 특별 할인을 해준다고 가정해보자. 사용 요금 명세서를 생성하는 기능은 아래 코드와 같이 명세서 상세 내역에 특별 할인 기능을 추가할 수 있다. public Bill createBill(Customer customer) { Bill bill = new Bill(); // 사용 내역 추가 bill.addItem(new Item("기본사용요금", price)); bill.addItem(new Item("할부금", somePrice)); // 특별 할인 내역 추가 SpecialDiscount specialDiscount = specialDiscountFactor..
‘개발자가 반드시 정복해야 할 객체 지향과 디자인 패턴' 책을 보고 정리한 글입니다. 통합 검색 기능을 정의하기 위해 SearchService 인터페이스를 작성하고 DB를 이용한 DBSearchService 클래스를 구현하였다. 게시글의 개수가 빠르게 증가하면서 SQL의 검색 속도 성능에 문제가 발생했다고 해보자. 검색 속도의 문제를 해결하기 위해 Tolr라는 오픈 소스 검색 서버를 도입하기로 결정했다. TolrClient가 제공하는 인터페이스와 SearchService 인터페이스가 맞지 않는다는 게 문제다. WebSearchRequestHandler 클래스를 비롯해서 여러 클래스가 SearchService를 사용하도록 만들어졌기 때문에, SearchService 대신 TolrClient를 사용하도록 변..
- Total
- Today
- Yesterday
- 이펙티브 자바
- Olympiad
- 객체지향
- Spring Boot
- 테라폼
- 프로그래머스
- programmers
- 코테
- 알고리즘
- Kotlin
- 클린 아키텍처
- 디자인 패턴
- BAEKJOON
- 백준
- JPA
- 디자인패턴
- BOJ
- 정규표현식
- Java
- kkoon9
- 클린 코드
- Effective Java
- MSA
- Spring
- 이팩티브 자바
- Algorithm
- AWS
- kotest
- node.js
- C++
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |