본문 바로가기

CS/디자인 패턴

Visitor Pattern 방문자 패턴 방문자 패턴이란? 알고리즘을 객체 구조에서 분리시키는 디자인 패턴(행위 패턴) 구조를 수정하지 않고 새로운 동작을 기존 객체에 추가할 수 있다. (연산을 적용할 객체의 클래스를 변경하지 않고도 새로운 연산을 정의할 수 있다.) 클래스에서 객체를 다루는 기능을 내부 메소드로 구현하는 것이 아닌, 각 클래스들의 데이터 구조에서 처리 기능을 분리하여 별도의 클래스로 구현하는 패턴이다. 분리된 처리 기능은 Visitor를 통해 각 클래스들을 방문하면서 수행한다. 즉, 실제 로직을 가지고 있는 객체가 로직을 적용할 객체를 방문하면서 실행하는 패턴이다. (로직과 구조를 분리하는 패턴) ※ 비지터 객체는 Traverser 객체와 함께 돌아간다. 트래버서는 컴포지트 패턴을 쓸 때, 복합 객체 내에 속해 있는 모든 객체.. 더보기
Facade Pattern 퍼사드 패턴 퍼사드 패턴이란? 디자인 패턴 중 구조 패턴(Structural Patterns)에 속하는 패턴 "하위 시스템을 보다 쉽게 사용할 수 있게 해주는 고급 인터페이스"이다. 많은 분량의 코드에 접근할 수 있는 단순한 인터페이스를 제공한다. 서브시스템과의 상호작용 복잡도(결합도)를 낮추는 목적으로 사용된다. Facade : 사용자의 요청을 서브시스템 객체에 전달하는 단순하고 일관된 통합 인터페이스 Subsystem : Facade에 대한 정보를 가지지 않고, 서브시스템의 기능을 구현하는 클래스 최소 지식 원칙(Principle of Least Knowledge) 객체 사이의 상호작용은 될 수 있으면 아주 가까운 '친구' 사이에서만 허용하는 것이 좋다. 시스템을 디자인할 때 어떤 객체든 그 객체와 상호작용을 하.. 더보기