본문 바로가기
반응형

DesignPattern3

Spring Bean을 이용한 팩토리 메서드 패턴으로 객체 분리하기 일이 너무 많아 오랜만에 글을 쓰는 것 같다... 새롭게 배운 내용도 엄청 많고 정리해야할 내용도 엄청 많은데 바쁘고 귀찮다는 핑계로 미뤄두다가 오랜만에 써보게 되는 것 같다. 후후... 그러면 간만에 리팩토링한 내용을 정리해보려고 한닷. ㄱㅈㅇ!! 문제상황 기존의 코드는 아래와 같다. Mybatis에서 Union All을 통해 여러가지 쿼리가 조건에 따라 합쳐져서 보여지고 있는 형태이다. ㅂㄷㅂㄷ... SELECT ... FROM Table1 JOIN ... WHERE ... UNION ALL SELECT ... FROM Table2 JOIN ... WHERE ... UNION ALLSELECT ... Table3 JOIN ... WHERE ... UNION ALL ... 위의 코드에서 여러 문제점이 .. 2024. 4. 7.
[디자인패턴] Builder Pattern / 빌더패턴 구현 빌더(Builder) 패턴이란? GoF 중 생성 패턴에 속하며, 객체를 생성할 때 유용하게 사용하는 디자인패턴이다. 기존에 생성자를 이용하여 객체를 생성하는데 생길 수 있는 문제를 보완하기 위해 사용되어 지며, 객체의 Optional한 속성이 많을수록 빌더패턴이 더욱 유용해진다. 아래와 같은 스타일로 객체를 생성하는 코드가 있다면, 빌더 패턴을 사용했다고 할 수 있다. Member member = Member.builder() .name("홍길동") .age(30) .build(); .으로 연속되게 이어지는 패턴을 Dot(.) Chain 문법이라고 부른다. 빌더 패턴의 구조 Builder 객체를 생성하는데 사용되는 인터페이스이다. ConcreteBuilder Builder를 실제로 구현하여 객체를 생성까.. 2022. 9. 11.
[디자인패턴] Flyweight Pattern / 플라이웨이트 패턴 구현 플라이웨이트(Flyweight) 패턴이란? 플라이웨이트 패턴은 불필요한 메모리 낭비를 줄이기 위해 고안된 패턴으로, 공통된 자원의 인스턴스를 한번만 생성하여 공유시켜주는 것이다. 즉, 공유를 통하여 대량의 객체들을 효과적으로 지원하는 방법이다. 여기서 어떤 자원을 플라이웨이트 패턴에 적용시킬까에 대한 관점은 보통 두가지로 축약된다. 1. 중복 생성될 가능성이 높은 경우 중복 생성될 가능성이 높다는 것은 동일한 자원이 자주 사용될 가능성이 매우 높다는 것을 의미한다. 이런 자원은 고통 자원 형태로 관리해 주는 편이 좋다. 2. 자원 생성 비용은 큰데 사용 빈도가 낮은경우 이런 자원을 항상 미리 생성해 두는 것은 낭비이다. 따라서 요청이 있을 때에 생성해서 제공해주는 편이 좋다. 이 두가지 목적을 위해서 플.. 2022. 9. 7.
반응형