책인 연쇄 패턴이란, 클라이언트의 요청에 따른 처리를 하나의 객체가 담당하는 것이 아니라 여러 객체들로 책임을 나누고 이를 사슬(chain) 처럼 연결해서 연쇄적으로 처리하는 패턴.예를 들어서, 소비자 센터에 전화하면 음성 로봇 -> 상담원 -> 전문 기술자 순으로 각
복합체 패턴이란, 복합 객체(composite)와 단일 객체(Leaf)를 동일하게 취급하여 클라이언트가 이 둘을 구분하지 않고 동일한 인터페이스를 통해 사용하는 구조 패턴이다.예를들어서, 복합 객체를 폴더, 단일 객체를 파일로 정의한파일 시스템 구조라고 생각하면된다.이
플리웨이트 패턴이란, 변하지 않는 속성과 자주 변하는 속성을 분리해서 변하지 않는 속성을 재사용 가능한 객체 인스턴스로 공유시켜 메모리 사용량을 최소화하는 구조패턴이다.중요한점은 캐시 개념을 적용시켜서 코드로 패턴화 한것이다(ex, Map 자료구조를 사용해서 이전에 생
스프링 프레임워크에서 DI 의존성 주입에서 사용하는 특별한 전략 패턴.복잡하지만 바뀌지 않는 일정한 패턴을 갖는 작업이 존재하고 그 중에서 일부만 자주 바꿔서 사용하는 경우 적합한 전략 패턴하나의 오브젝트를 다른 오브젝트의 메소드로 넘겨주는 코드.즉, 파라미터로 전달되
빌더 패턴이란, 객체의 생성과정과 표현방법을 분리해서 다양하게 이루어진 인스턴스를 만드는 생성패턴매개 변수로 값을 하나하나 받아서 진행하고 마지막으로 통합 빌드 해서 객체를 생성수제 햄버거로 예시를 들자, 수제 햄버거 이기에 사용자가 원하는 순서나 먹고 싶지않은 재료들
퍼사드 패턴이란, 사용하기 복잡한 라이브러리들을 사용하기 편리하도록 간편한 인터페이스를 구성하기위한 구조패턴이다라이브러리의 클래스와 메서드의 동작을 바로 이해하기 어려워 사용하기 어려울때, 이에 대해서 적절한 네이밍과 정리를 통해 사용자들이 쉽게 하용할 수 있도록 인터
반복자 패턴이란, 특정한 데이터 집합에 순차적인 접근을 지원하는 행위 패턴일반적인 데이터 집합인 배열이나 List 같은 집합은 for문을 통해서 간단하게 순회 가능하지만, 해시 트리처럼 데이터의 순서가 정해지지 않고 저장되는 컬렉션들을 순회하는 기준이 애매하다.이러한
옵저버 패턴이란, 이름에서 알수 있듯이 관찰자, 즉 관찰하고 있는 대상이 변화할때마다 관찰자에게 이를 알리고 그에 맞게 행동하는 행동 패턴일대다 의존성을 갖게된다Publisher/SubScriber 구조관찰이라는 이름에서 능독적으로 관찰하고있느 것처럼 보이지만, 사실을
데코레이터 패턴이란, 객체에 대한 기능 확장이나 변경이 필요할때 객체의 결합을 통해서 만들어 내는 구조 패턴이다.런타임 시간에 추가적인 확장이나 변경이 가능하다'장식자'라는 의미를 갖고있는데 기본 제품에 외부 디자인이나 포장을 변경해 줌으로써 새로운 기능을 부여하는 것
어댑터 패턴이란, 이름에서 볼 수 있듯이 일반적인 방법으로는 사용하지 못하는 서비스에 대해서 어댑터 라는 객체를 만들어서 클라이언트가 서비스를 사용할 수 있게끔 해주는 구조 패턴110V 가전제품을 220V 어댑터를 통해서 사용하는 개념즉, 호환성이 없는 인터페이스 때문
추상 팩토리 메서드란, 연관성이 있는 객체들을 묶어 추상화하고, 팩토리 객체를 통해서 묶은 객체들을 특정한 객체로 구현화 하는 생성 패턴 이다.핵심은 객체를 타입별로 만들어낼 수 있다는 점이다.AbstractFactory : Factory의 기능을 정의하는 인터페이스C
프록시는 대리인이라는 의미를 갖고있다. 따라서 프록시 패턴이란, 원본 객체의 일을 대신 처리하여 로직의 흐름을 제어 하는 행동 패턴이다 이름에서 볼 수 있듯이 클라이언트는 원본객체를 직접 사용하는 것이 아닌 프록시를 거쳐서 사용하는 패턴이다. 프록시에서 추가적인 로직을
팩토리 메서드 패턴이란, 객체의 생성을 담당하는 팩토리 클래스를 제공하여 캡슐화를 진행하고 대신 객체를 생성해주는 생성 디자인 패턴이다.new 연산자를 통하여 객체를 생성하는 것이 아닌 팩토리 객체를 통하여 객체를 생성한다.팩토리 클래스를 설계하고 이를 상속받는 서브
상태 패턴이란, 특정 상태에 따라 행동을 달리하는 상황에서는 조건문을 사용해서 구현했는데, 이 대신에 상태를 객체화해서 그 상태가 행동을 하도록 위임하는 행동 패턴이다.즉, 상황에 따른 기능을 State 객체에 정의하고 이 상황을 객체화한 후, 상황에 따른 기능을 사용
템플릿 메서드 패턴이란, 여러 클래스에서 공통으로 사용되는 메서드를 템플릿화 하여 상위 클래스로 정의하고, 하위 클래스에서 세부 동작을 설정하는 행위 패턴이다.즉, 변하지 않는 기능을 상위클래스에 정의(템플릿 메서드)하고 자주 변하는 기능을 하위 클래스에서 구현템플릿이
전략 패턴이란, 런타임 중에 알고리즘 전략을 선택해서 동작을 실시간으로 바꿔줄 수 있게 해주는 행위 디자인 패턴이다. 전략 : 특정한 기능이나 동작으로 특정한 목표를 수행하기 위한 행동 계획 여러가지 알고리즘 전략을 미리 정의해놓고 교체하면서 사용하는 패턴 구조 C
싱글톤 패턴이란, 하나의 객체에 대해 인스턴스를 새로 만드는 것이 아닌 기존의 인스턴스를 가져와 활욜하는 생성 패턴이다.우리가 전역변수나, 정적 변수를 만들어서 언제 어디서는 같은 값을 사용하기위해 정의하는 것처럼 하나의 인스턴스를 생성해서 재사용하는 것이다.객체의 생