본문 바로가기

Design Pattern2

전략 패턴 (Strategy Pattern) 인터페이스를 정의하고, 각 행위를 클래스별로 캡슐화하여 특정 기능을 자유롭게 변경하여 사용하는 패턴이다. 객체의 행위를 동적으로 바꾸고 싶은 경우 직접 행위를 수정하지 않고 전략을 바꿔주기만 하며 유연하게 확장하는 방법으로 정책 패턴(Policy Pattern)이라고도 한다. 전략 패턴(Strategy Pattern) 또는 정책 패턴(Policy Pattern)은 실행 중에 알고리즘을 선택할 수 있게 하는 행위 소프트웨어 디자인 패턴이다. 전략 패턴은 특정한 계열의 알고리즘을 정의하고, 각 알고리즘을 캡슐화하며, 이 알고리즘들을 해당 계열 안에서 상호 교체가 가능하게 만든다. 위키피디아 Strategy.java public interface Strategy { public void run(); } Str.. 2024. 1. 14.
템플릿 메서드 패턴 (Template Method Pattern) 템플릿 메서드 패턴은 핵심 기능과 부가 기능을 분리하여 단일 책임 원칙(SRP)을 지켜 변경 지점을 하나로 모아 변경에 쉽게 대처할 수 있게 만드는 구조이다. 상속과 오버라이딩을 통한 다형성으로 부모 클래스에 부가 기능(템플릿)을 정의하고 핵심 기능을 자식 클래스에 정의한다. 작업에서 알고리즘의 골격을 정의하고 일부 단계를 하위 클래스로 연기한다. 템플릿 메서드를 사용하면 하위클래스가 알고리즘의 구조를 변경하지 않고도 알고리즘의 특정 단계를 재정의할 수 있다. 템플릿 메서드 패턴은 자식 클래스를 여러개 만들어줘야 하는 단점이 있다. 이런 단점을 보완하기 위해 익명 내부 클래스를 사용한다. 익명 내부 클래스를 구현하면 객체 인스턴스를 생성하면서 동시에 생성할 클래스를 상속 받은 자식 클래스를 정의할 수 .. 2024. 1. 14.