면접(3)
-
[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