일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바
- redis
- Galera Cluster
- Proxy
- C
- 컴퓨터구조
- 네트워크
- Java
- 알고리즘
- Kafka
- mongoDB
- Spring
- 파이썬
- 백준
- spring webflux
- c언어
- 운영체제
- JPA
- 자료구조
- OS
- MSA
- 디자인 패턴
- design pattern
- react
- Algorithm
- Heap
- JavaScript
- Data Structure
- IT
- MySQL
- Today
- Total
목록디자인 패턴 (14)
시냅스
스테이트 패턴 State Pattern 클래스가 하나의 상태에 따라 그 내부의 여러 메서드의 기능이 바뀐다고 하면 이를 각각의 클래스로 분리한다. 의도와 동기 객체의 기능은 상태에 따라 달라질 수 있는데, 이러한 상태가 여러가지이고, 클래스 전반의 모든 기능이 상태에 의존적이라 하면, 상태를 클래스로 표현하는 것이 적절함 클래스로 분리하지 않게 되면 상태가 여러가지인 경우 많은 if-else 문이 사용되고 추후 상태가 추가되거나 삭제될 때 수정해야 하는 사항이 너무 많아짐 Context : ConcreteState의 인스턴스를 관리하고 서로 상태가 바뀌는 순간을 구현할 수 있다. State : Context 가 사용할 메서드를 선언한다. ConcreateState : 각 상태 클래스가 수행할 State에..
데코레이터 패턴, Decorator Pattern 장식과 실제 내용물을 동일시 객체에 동적으로 책임을 추가 상속을 사용하지 않고 기능의 유연한 확장이 가능한 패턴 객체에 동적으로 새로운 서비스를 추가 할 수 있음 전체가 아닌 개별적인 객체에 새로운 기능을 추가 할 수 있음 Component : 동적으로 추가할 서비스를 가질 수 있는 객체 정의 ConcreteComponent : 추가적인 서비스가 필요한 실제 객체 Decorator : Component의 참조자를 관리하면서 Component에 정의된 인터페이스를 만족하도록 정의 ConcreteDecorator : 새롭게 추가되는 서비스를 실제 구현한 클래스로 addBehavior()를 구현한다. 결론 단순한 상속보다 설계의 융통성을 증대 Decorator..
팩토리 메소드 패턴 Factory method Pattern 인스턴스 작성을 하위 클래스에게 위임. Template Method 패턴을 인스턴스 생성에 적용 객체를 생성하기 위한 인터페이스를 정의하지만, 어떤 클래스의 인스턴스를 생성할지에 대한 결정은 서브클래스에서 결정하게 함. 여러 상황에 따라 각각 생성될 수 있는 객체에 대한 생성을 하위 클래스에 위임 생성과 관련된 동일한 메서드는 상위 클래스에서 처리 객체를 만들어 반환하는 함수를 (생성자 대신) 제공하여 초기화 과정을 외부에서 보지 못하게 숨기고 반환 타입을 제어하는 방법. package factory; abstract class Car { String productName; public String toString() { return produ..
싱글톤 패턴 singleton pattern 이란 클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴 객체 인스턴스를 2개 이상 생성하지 못하도록 막아야 한다. private 생성자를 사용해서 외부에서 임의로 new 키워드를 사용하지 못하도록 막아야 한다. public class SingletonService { //1. static 영역에 객체를 딱 1개만 생성해둔다. private static final SingletonService instance = new SingletonService(); //2. public으로 열어서 객체 인스터스가 필요하면 이 static 메서드를 통해서만 조회하도록 허용한다. public static SingletonService getInstance() ..