Decorator Pattern: 객체의 기능을 동적으로 확장하기 위한 디자인 패턴
Decorator Pattern이란? Decorator Pattern은 객체의 기능을 동적으로 확장하기 위한 디자인 패턴입니다. 객체의 기능을 유연하게 확장하면서도 기존 코드의 수정 없이 구현할 수 있습니다. 이 패턴은 객체 지향 디자인 원칙 중 하나인 개방-폐쇄 원칙(Open-Closed Principle)을 준수합니다. 이 원칙은 기능 확장에 대해 개방되어 있으나, 수정에 대해 폐쇄되어 있어야 한다는 것입니다. Decorator Pattern은 이 원칙을 따르면서도 객체의 기능 확장을 가능하게 합니다. 객체 기능 동적 확장을 위한 디자인 패턴 Decorator Pattern은 객체의 기능을 동적으로 확장할 때 유용합니다. 이 패턴은 객체에 새로운 기능을 추가하고자 할 때, 기존 코드의 수정 없이 새로운 기능을 추가할 수 있도록 합니다. 이를 위해, Decorator 클래스를 사용합니다. Decorator 클래스는 객체를 래핑하고, 래핑된 객체의 기능을 확장합니다. 실제로 사용되는 객체와 동일한 인터페이스를 구현합니다. Decorator 클래스는 생성자에서 래핑할 객체를 받아서, 이 객체의 기능을 확장합니다. 기존 객체의 기능을 변경하지 않고 새로운 기능을 추가할 수 있습니다. Java 코드를 통해 Decorator Pattern을 살펴보겠습니다. 예를 들어, 커피에 물, 우유, 설탕 등을 추가하는 경우를 생각해보겠습니다. 먼저, 커피를 나타내는 인터페이스를 만듭니다. public interface Coffee { public String getDescription(); public double getCost();} 다음으로, 커피 객체를 구현합니다. public class SimpleCoffee implements Coffee { public String getDescription() { return "Simple coffee"; } public double getCost() { retu...