일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Clean Code
- facade pattern
- 스트림
- jsp
- Was
- 자바의 신
- SERVLET
- Design Pattern
- Java in action
- 자바
- spring
- 클린코드
- AWS101
- Stream
- Template Method Pattern
- web
- 디자인 패턴
- domain
- 자바8인액션
- ddd
- spring boot
- Java 8 in action
- Java8 in action
- spring Batch
- head first
- 패스트캠퍼스
- Java
- CQRS
- Java8
- 자바8
- Today
- Total
목록디자인 패턴 (2)
주난v 개발 성장기
DB 데이터와 LDAP을 이용해서 인증을 처리하는 클래스를 만들었을 때... 두 클래스는 거의 유사한 코드를 갖게 된다. 실행의 과정 / 단계는 동일한데 일부의 구현이 다른 경우에 사용하는 패턴을 "템플릿 메서드 패턴"이라고 한다. public abstract authenticator { public Auth authenticate(String id, String pw) { if (!doAuthenticate(id, pw) { throw createException(); } return createAuth(id); } protected abstract boolean doAuthenticate(String id, String pw); protected abstract Auth createAuth(Strin..
전략 패턴 - 객체들이 할 수 있는 행위 각각에 대해 전략 클래스를 생성 - 유사한 행위들을 캡슐화하는 인터페이스 생성 - 객체의 행위를 직접 수정하지 않고, 런타임 시점에 전략을 바꿔주어서 행위를 유연하게 확장 기능 위임. 기존 코드의 변경 없이 외부 주입만 변경하면서 사용하는 패턴 as-is - 계산 클래스에서 모든 처리를 다해줌 - 조건이 추가된다면 코드가 무한정 증가되는 단점을 가짐 public class Calculator { public int calculate(boolean firstGuest, List items) { int sum = 0; for (Item item : items) { if (firstGuest) { sum += (int) (item.getPrice() * 0.9);// ..