GOF(4)
-
[GOF] 추상 팩토리 패턴
1. Abstrract Factory Pattern 연관성이 있는 객체 군이 여러개 있을 경우 이들을 묶어서 추상화하고, 팩토리 객체에서 집합으로 묶은 객체 군을 구현화하는 패턴 특정 객체를 사용할 때 팩토리 클래스만을 참조하여 특정 객체에 대한 구현부를 감추어 역할과 구현을 분리 AbstractFactory : 최상위 공장 클래스. 여러개의 제품들을 생성하는 여러 메소드들을 추상화한다. ConcreteFactory : 서브 공장 클래스들은 타입에 맞는 제품 객체를 반환하도록 메소드들을 재정의 한다. AbstractProduct : 각 타입의 제품들을 추상화한 인터페이스 ConcreteProduct (ProductA ~ ProductB) : 각 타입의 제품 구현체들. 이들은 팩토리 객체부터 생성 Clie..
2024.04.02 -
[GOF] 상태(State) 패턴
1. State Pattern 상태 패턴은 객체가 특정 상태에 따라 행위를 달리하는 상황에서, 상태를 객체화 하여 상태가 행동을 할 수 있도록 위임하는 패턴 객체 상태를 클래스로 표현한 패턴 State 인터페이스 : 상태를 추상화한 고수준 모듈 ConcreteState : 구체적인 각각의 상태를 클래스로 표현. State 역할로 결정되는 인터페이스(API)를 구체적으로 표현 Context : State를 이용하는 시스템. 시스템 상태를 나타내는 State 객체를 합성(composition)하여 가지고 있다. interface AbstractState { void requestHandle(Context cxt); } class ConcreteStateA implements AbstractState { @O..
2024.03.18 -
[GOF] 전략(Strategy) 패턴
1. Strategy Pattern 실행(런타임) 중에 알고리즘 전략을 선택하여 객체 동작을 실시간으로 바뀌도록 할 수 있게 하는 행위 디자인 패턴 즉, 동작들을 미리 전략으로 정의함으로써 손쉽게 전략을 교체할 수 있는, 변형이 빈번한 경우 적합한 패턴 전략 알고리즘 객체들 : 알고리즘, 행위, 동작을 객체로 정의한 구현체 전략 인터페이스 : 모든 전략 구현체에 대한 공용 인터페이스 컨텍스트 : 알고리즘을 실행해야 할 때마다 해당 알고리즘과 연결된 전략 객체의 메소드를 호출 클라이언트 : 특정 전략 객체를 컨텍스트에 전달 함으로써 전략을 등록하거나 변경하여 전략 알고리즘을 실행한 결과를 누린다. 동일 계열의 알고리즘군을 정의하고 (전략 구현체로 정의) , 각각의 알고리즘을 캡슐화하여 (인터페이스로 추상화..
2024.03.17 -
[GOF] 싱글톤(Singleton) 패턴
1. 싱글톤 패턴 단 하나의 유일한 객체를 만들기 위한 코드 패턴 메모리 절약을 위해, 인스턴스가 필요할때 똑같은 인스턴스를 새로 만들지 않고 재활용 하는 기법 대표적으로 데이터베이스 연결 모듈 이밖에도 디스크 연결, 네트워크 통신, DBCP 커넥션풀, 스레드풀, 캐시, 로그 기록 등에 이용된다. 정적 메소드 getInstance()를 통해 객체를 불러와 변수에 저장하고 이를 출력해보면 똑같은 객체 주소를 가지고있다. 객체 하나만 생성하고 여러변수에 불러와도 돌려쓰기를 한것 public class Main { public static void main(String[] args) { // Singleton.getInstance() 를 통해 싱글톤 객체를 각기 변수마다 받아와도 똑같은 객체 주소를 가리킴 S..
2024.03.16