본문 바로가기

Design Pattern2

전략 패턴 (Strategy Pattern) 전략(Strategy) 패턴 예제 public class Calculator { public int calculator(boolean firstGuest, List items) { int sum = 0; for (Item item : items) { if (firstGuest) sum += (int) (item.getPrice() * 0.9) else if (! item.isFresh()) sum += (int) (item.getPrice() * 0.8) else sum += item.getPrice() } return sum; } } 위 코드는 첫번째 손님인지 또는 상품의 신선도 여부에 따라 다른 가격 정책을 사용하고 있다. 문제점 서로 다른 계산 정책들이 한 코드에 섞여, 정책이 추가될수록 코드 분석.. 2022. 9. 6.
파사드 패턴(Facade Pattern) 파사드 패턴(Facade Pattern) 파사드 패턴은 어떤 소프트웨어의 다른 커다란 코드 부분에 대한 간략화된 인터페이스를 제공하는 객체 파사드 패턴은 서브 시스템을 감춰 주는 상위 수준의 인터페이스를 제공함으로써 ‘코드 중복'과 ‘직접적인 의존' 문제를 해결하는데 도움을 줌 파사드 패턴 구조 1) 파사드 패턴 적용하기 파사드 패턴을 적용할 수 있는 경우 위와 같은 설계 구조의 코드가 있다고 생각하자 위 설계 구조에서는 세 개의 클래스에서 동일한 Dao에 접근하면서 ‘코드 중복’과 ‘직접적인 의존'이라는 문제점을 가지고 있다. 파사드 패턴 적용하기 파사드를 이용해서 ‘코드 중복'과 ‘직접적인 의존’을 해결 위 설계에서 ‘EmpReportDaoFacade(파사드)는 서브 시스템에 속한 각 Dao를 이용해.. 2022. 9. 6.