디자인패턴비교 2

전략, 옵저버, 커맨드 패턴

1. 행동 패턴이 필요한 이유1-1. 생성과 구조만으로는 부족하다 객체지향 설계에는 생성(Creational), 구조(Structural), 행동(Behavioral)이라는 세 가지 패턴 분류가 있다. 대부분의 초보 설계자들은 생성과 구조 패턴에 집중하는 경향이 있다. 하지만 객체가 생성되고 관계가 설정된 후, 실제 동작 방식의 유연성을 확보하는 것이 진짜 설계의 완성이다. 행동 패턴은 객체 간의 협력과 메시지 흐름을 설계하는 데 초점을 맞춘다. 이는 단순한 로직 분리 수준을 넘어, 시간에 따라 변화하거나 전략적으로 대체 가능한 행동을 추상화하는 방식으로 시스템의 복잡성을 줄인다. 특히 사용자 인터페이스, 이벤트 처리, 명령 실행 등에서 매우 유용하게 활용된다. 행동 패턴이 없다면 모든 행동은 if-..

컴퓨터공학 2025.05.23

팩토리 vs 추상 팩토리 패턴

1. 객체 생성의 유연성을 위한 패턴들1-1. 생성 패턴이 중요한 이유 객체 지향 프로그래밍에서 가장 먼저 부딪히는 설계 과제가 바로 객체 생성이다. 언뜻 보면 단순한 new 연산자만으로 충분해 보이지만, 규모가 커질수록 이 단순한 생성 방식이 구조를 경직시키고 테스트를 어렵게 만든다. 예를 들어, 어떤 객체를 생성하려면 내부 구성 객체들도 같이 생성해야 하고, 그에 따른 환경 설정도 초기화해야 한다면, 생성자가 너무 복잡해지고 객체 간의 의존성이 코드 깊숙이 박히게 된다. 이런 상황에서 등장하는 것이 팩토리 패턴이다. 객체 생성 자체를 캡슐화하고, 클라이언트는 객체를 사용하는 데만 집중할 수 있도록 설계한다. 팩토리 패턴은 특히 확장 가능한 구조, 느슨한 결합, 의존성 주입의 유연성이라는 측면에서 필수..

컴퓨터공학 2025.05.22