Computer Science/디자인 패턴4 빌더 패턴 (Builder Pattern) 빌더 패턴(Builder pattern)이란? 객체를 정의하고 그 객체를 생성할 때 보통 생성자를 통해 생성하는 것을 생각한다. Bag bag = new Bag("name", 1000, "memo"); 하지만 생성자를 통해 객체를 생성하는데 몇 가지 단점이 있어 객체를 생성하는 별도 builder를 두는 방법이 있다. 이를 빌더 패턴이라고 한다. Bag bag = Bag.builder() .name("name") .money(1000) .memo("memo") .build(); 객체를 생성할 수 있는 빌더를 builder() 함수를 통해 얻고 거기에 셋팅하고자 하는 값을 셋팅하고 마지막에 build()를 통해 빌더를 작동 시켜 객체를 생성한다. 빌더 패턴(Builder pattern)을 사용하는 이유 생.. 2023. 5. 2. 브릿지 패턴 (가교 패턴) 브릿지패턴이란 브릿지 패턴 큰 클래스 또는 밀접하게 관련된 클래스들의 집합을 두 개의 개별 계층구조(추상화 및 구현)로 나눈 후 각각 독립적으로 개발할 수 있도록 하는 구조 디자인 패턴입니다. 말로는 잘 와닿지 않는 개념이니, 그림과 함께 살펴보자 Circle(원) 및 Square(직사각형)라는 한 쌍의 자식 클래스들이 있는 기하학적 Shape(모양) 클래스가 있다고 가정하고, 이 클래스 계층 구조를 확장하여 색상을 도입하기 위해 Red(빨간색) 및 Blue(파란색) 모양들의 자식 클래스들을 만든다고 하자. 그러나 Shape에는 이미 두 개의 자식 클래스가 있으므로 BlueCircle(파란색 원) 및 RedSquare(빨간색 직사각형)와 같은 네 가지의 클래스 조합을 만들어야 한다.. 2023. 4. 24. 전략 패턴 전략 패턴 객체들이 할 수 있는 행위 각각에 대해 전략 클래스를 생성하고, 유사한 행위들을 캡슐화 하는 인터페이스를 정의하여, 객체의 행위를 동적으로 바꾸고 싶은 경우 직접 행위를 수정하지 않고 전략을 바꿔주기만 함으로써 행위를 유연하게 확장하는 방법을 말한다. 간단히 말해서 객체가 할 수 있는 행위들 각각을 전략으로 만들어 놓고, 동적으로 행위의 수정이 필요한 경우 전략을 바꾸는 것만으로 행위의 수정이 가능하도록 만든 패턴이다. 전략 패턴 예제 - 로봇 만들기 추상 클래스 Robot의 자식 클래스로 Atom 클래스, TaekwonV 클래스가 존재하고, Robot의 추상 메서드로 attack(), move()가 있는 상황을 가정해보자. 이 때 attack과 move 추상메소드는 자식클래스에서 재정의하도록.. 2023. 4. 24. 싱글톤 패턴 싱글톤 패턴이 사용되는 이유 웹 애플리케이션은 수많은 클라이언트에서 서비스를 요청받게 되는데, 만약 서버에서 클라이언트의 요청을 받을때마다 클래스 인스턴스를 생성하게 되면 JVM 메모리의 사용량이 증가하게 되고 서버는 부하를 감당할 수 없게 될 것이다. @Configuration public class AppConfig { @Bean public MemberRepository getMemberRepository() { return new MemoryMemberRepository(); } @Bean public DiscountPolicy getDiscountPolicy() { return new RateDiscountPolicy(); } @Bean public MemberService memberServi.. 2023. 4. 23. 이전 1 다음