빌더 패턴이란?빌더 패턴은 객체의 생성 과정과 표현 방법을 분리해 다양한 구성의 인스턴스를 만드는 패턴이다. 생성자에 들어갈 매개 변수를 메서드로 하나하나 받아들이고, 마지막에 통합 빌드해서 객체를 생성한다. 객체의 생성 로직을 클래스 밖으로 옮김으로써 생성자의 복잡성과 비즈니스 룰의 복잡성을 줄일 수 있다. 빌더 패턴 배경1. 점층적 생성자 패턴class Hamburger { // 필수 매개변수 private int bun; private int patty; // 선택 매개변수 private int cheese; private int lettuce; private int tomato; private int bacon; public Hamburger(in..
플라이웨이트 패턴이란?플라이웨이트 패턴은 재사용 가능한 객체 인스턴스를 공유시켜 메모리 사용량을 최소화하는 패턴이다. 자주 변하는 속성(extrinsit)과 변하지 않는 속성(intrinsit)을 분리하고 변하지 않는 속성을 캐시하여 재사용해 메모리 사용을 줄이는 방식으로, 동일하거나 유사한 객체들 사이에 가능한 많은 데이터를 서로 공유하여 사용하도록 해 최적화를 노리는 경량 패턴이다. intrinsic vs extrinsic intrinsic란 '고유한, 본질적인' 이라는 의미를 가진다. 즉, 인스턴스가 어떠한 상황에서도 변하지 않는 정보를 말하며 그래서 값이 고정되어 있기에 충분히 언제 어디서 공유해도 문제가 없게 된다. 따라서, intrinsic한 객체는 장소나 상황에 의존하지 않기 때문에 값이 고..
책임 연쇄 패턴이란?책임 연쇄 패턴은 클라이언트의 요청에 대한 처리를 하기 위해 여러 개의 처리 객체들로 나누고, 이들을 chain 마치 사슬처럼 연결해 집합 안에서 연쇄적으로 처리하도록 하는 패턴이다. 이러한 처리 객체들을 핸들러(handler)라고 부르는데, 요청을 받으면 각 핸들러는 요청을 처리할 수 있는지, 없으면 체인의 다음 핸들러로 처리에 대한 책임을 전가한다. 한마디로 책임 연쇄라는 말은 요청에 대한 책임을 다른 객체에 떠넘긴다는 소리이다.책임 연쇄 패턴 사용법 Handler : 요청을 수신하고 처리 객체들의 집합을 정의하는 인터페이스ConcreteHandler : 요청을 처리하는 실제 처리 객체핸들러에 대한 필드를 내부에 가지고 있으며 메서드를 통해 다음 핸들러를 체인시키고 다음 바라본다..
프록시 패턴이란?프록시 패턴은 특정 객체에 접근을 조절하기 위해 대리자를 세워서 대신 처리하게 함으로써 로직의 흐름을 제어하는 행동 패턴입니다. 클라이언트가 대상 객체를 직접 쓰는게 아니라 중간에 프록시(대리인)을 거쳐서 씁니다. 따라서 대상 객체(Subject)의 메소드를 직접 실행하는 것이 아닌, 대상 객체에 접근하기 전에 프록시(Proxy) 객체의 메서드를 접근한 후 추가적인 로직을 처리한뒤 접근하게 됩니다. 이때 프록시 객체가 처음 생성될 때는 자신이 대신할 객체를 미리 만들지 않고 외부에서 처음 요청이 들어왔을 때 Subject 객체를 생성합니다.프록시는 캐싱과 지연 초기화, 로깅의 효과를 지닌다.캐싱(Caching) : 프록시가 내부 캐시를 유지하여 데이터가 캐시에 아직 존재하지 않는 경우에만..
중재자 패턴이란?중재자 패턴은 여러 객체들에게 분산될 행위를 한 곳(Mediator 객체)으로 모아줌으로써 객체들 간의 연결강도를 줄여줍니다. 이로써 객체들간의 관계를 M:N에서 M:1로 줄여주어서 각 객체들은 Mediator 객체를 제외한 다른 객체는 알지 못하고, 중재자 클래스에만 의존하게 됩니다. 중재자 패턴의 사용 방법Mediator : Colleague 객체간의 커뮤니케이션을 위한 인터페이스 정의Colleague : Mediator를 통해 다른 Colleague와 커뮤니케이션을 위한 인터페이스 정의ConcreteMediator : Mediator 구현체로 Colleague들간의 상호 커뮤니케이션을 위해 Colleague들을 가지고 있으며 커뮤니케이션을 조정함ConcreteColleague : ..
옵서버 패턴이란?옵저버 패턴(Observer Pattern)은 1대 다의 의존관계이며 객체 상태의 변화가 다른 의존 객체에 통지되고 자동으로 업데이트 되게 합니다. Pub/Sub(발행/구독) 모델로도 알려져 있기도 합니다. Java에서는 Observer, Observable를 지원하기도 합니다.프로그래밍적으로 옵저버 패턴은 사실 '관찰' 하기 보단 갱신을 위한 힌트 정보를 '전달' 받길 기다린다고 보는 것이 적절하다. 관찰자라는 단어 뉘앙스에서 능동적으로 대상을 관찰하는 것처럼 느껴지지만, 사실 대상 객체로부터 수동적으로 전달 받기를 기다리고 있기 때문이다. 즉,관찰자(Observer)는 발행자(Subject)가 알림을 주기를 항시 대기하고 있는 것이다.옵서버 패턴 사용 방법발행자 클래스ISubject..
싱글톤 패턴이란?싱글톤 패턴이란 단 하나의 유일한 객체를 만들기 위한 코드 패턴입니다.쉽게 말하자면 메모리 절약을 위해, 인스턴스가 필요할 때 똑같은 인스턴스를 새로 만들지 않고 기존의 인스턴스를 가져와 활용하는 기법을 말합니다. 전역 변수라는 걸 만들어 이용하는 이유는, 똑같은 데이터를 메서드마다 지역 변수로 선언해서 사용하면 무의미하기도 않고 낭비이기 때문에, 전역에서 한번만 데이터를 선언하고 가져와 사용하면 효율적이기 때문입니다.따라서 보통 싱글톤 패턴이 적용된 객체가 필요한 경우는 그 객체가 리소스를 많이 차지하는 역할을 하는 무거운 클래스일때 적합하며, 대표적으로 데이터베이스 연결 모듈이 있습니다. 싱글톤 패턴 사용 방법1. Singleton 클래스 안에 Singleton이라는 이름의 priv..
브리지 패턴이란?구현부에서 추상층을 분리하여 각자 독립적으로 변형이 가능하고 확장이 가능하도록 합니다. 즉 기능과 구현에 대해서 두 개를 별도의 클래스로 구현을 합니다. 추상 계층에 있는 모든 클래스의 연산 실행은 구현 계층을 통해 이루어 진다.브리지 패턴 사용 방법구현 계층Implementor : 구현 클래스에 대한 인터페이스를 제공ConcreateImplementor: Implementor 인터페이스를 구현. 실제적은 구현 내용을 담음추상 계층Abstraction : 추상적 개념에 대한 인터페이스를 제공하고, 객체 구현부 인터페이스와 집합 관계를 형성RefinedAbstraction : 추상적 개념에 정의된 인터페이스를 확장//추상 부분public interface Implementor{ v..
- Total
- Today
- Yesterday
- 구글로그인
- 상태 패턴
- n+1
- 책임연쇄패턴
- CompositePattern
- ArrayDeque
- dfs
- Iterator Pattern
- springsecurity
- 반복자 패턴
- 프록시패턴
- java문법
- UML 필요성
- 메멘토 패턴
- restapi
- 빌더 패턴
- 플라이웨이트패턴
- GithubActions
- idtoken
- 프로토타입 패턴
- 책임체인패턴
- 복합체 패턴
- 양방향연관관계
- Flutter
- 브리지 패턴
- jpa
- FacadePattern
- 컴포지트패턴
- Chain of Responsibility
- 퍼싸드패턴
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |