행동 패턴 3

Design Pattern 디자인 패턴 Visitor Pattern 방문자 패턴

Visitor Pattern 방문자 패턴 행동 패턴으로, 알고리즘이 작동하는 객체와 알고리즘을 분리하는 패턴입니다. 방문자 객체가 알고리즘이 작동하는 객체의 알고리즘을 관리합니다. Visitor Pattern 방문자 패턴이 적합한 경우 복잡한 객체 구조의 모든 요소에 대해 기능을 수행해야 하는 경우. 부수적인 비즈니스 로직을 정리해야 하는 경우 기능이 일부 클래스에서만 의미가 있고, 다른 클래스에서는 의미가 없을때. 장단점 장점 기존 객체를 수정하지 않고, 다른 객체와 함께 동작하는 기능을 추가할 수 있습니다. (개방폐쇄원칙) 같은 기능을 다양한 버전으로 관리할 수 있습니다. (단일책임원칙) 방문자 객체가 유용한 정보를 축적할 수 있습니다. 이 정보는 복잡한 객체 구조를 탐색하고, 이 구조의 각 객체에 ..

JAVA/DesignPattern 2022.01.03

Design Pattern 디자인 패턴 Template Pattern 템플릿 패턴

Template Pattern 템플릿 패턴 행동 패턴으로, 상위 클래스(인터페이스, 추상클래스)에서 알고리즘의 골격만 정의하고, 하위 클래스에서 재정의(Override)할 수 있도록 하는 패턴입니다. Template Pattern 템플릿 패턴이 적합한 경우 기존 알고리즘에서 몇가지 기능만 추가한 객체를 만들고 싶은 경우 (몇가지 기능이 추가된 하위 클래스를 생성) 서로 조금씩만 다른 클래스가 여러개 있는 경우 (공통의 기능을 템플릿으로 묶어내어 코드의 중복을 줄일 수 있음) 장단점 장점 많은 기능 중에서 몇가지만 재정의하여 객체를 생성할 수 있습니다. 다른 객체가 받는 영향을 줄일 수 있습니다. 중복되는 코드를 상위 클래스로 옮길 수 있습니다. 단점 몇몇 객체들은 알고리즘 구조를 생성하기 어려울 수 있습..

JAVA/DesignPattern 2021.12.31

Design Pattern 디자인 패턴 Startegy Pattern 전략 패턴

Startegy Pattern 전략 패턴 행동 패턴으로, 런타임에 객체의 행동이나 알고리즘을 결정할 수 있는 패턴입니다. 다양한 전략을 나타내는 객체와 전략 객체에 따라 행동이 다른 컨텍스트 객체를 생성합니다. Startegy Pattern 전략 패턴이 적합한 경우 런타임에 객체의 기능이나 알고리즘을 변경하고 싶은 경우 몇개의 행동(메소드)만 다른, 비슷한 객체가 많은 경우 비즈니스 로직에서 분리하고 싶은 경우 클래스에 알고리즘이나 기능을 변환하기 위한 대량의 조건 연산이 있는 경우 장단점 장점 런타임에 객체 내부의 알고리즘을 바꿀 수 있습니다. 알고리즘을 사용하는 코드에서 알고리즘을 구현하는 세부 기능을 분리할 수 있습니다. 합성(Composition)으로 상속(inheritance)을 대체할 수 있습..

JAVA/DesignPattern 2021.12.30