Spring 핵심원리 고급편 - Decorator Pattern 1
목차 Post not found: spring/design-pattern/spring-aop/cglib/cglib-01 Post not found: spring/design-pattern/spring-aop/dynamic-proxy/dynamic-proxy-02 Post not found: spring/design-pattern/spring-aop/dynamic-proxy/dynamic-proxy-01 Post not found: spring/design-pattern/spring-aop/dynamic-proxy/reflection Post not found: spring/design-pattern/spring-aop/concrete-proxy/concrete-proxy-04 Post not found: spring/design-pattern/spring-aop/concrete-proxy/concrete-proxy-02 Post not found: spring/design-pattern/spring-aop/concrete-proxy/concrete-proxy-01 Post not found: spring/design-pattern/spring-aop/decorator/decorator-02 Post not found: spring/design-pattern/spring-aop/decorator/decorator-01 Post not found: spring/design-pattern/spring-aop/proxy-pattern/proxy-04 Post not found: spring/design-pattern/spring-aop/proxy-pattern/proxy-03 Post not found: spring/design-pattern/spring-aop/proxy-pattern/proxy-02 Post not found: spring/design-pattern/spring-aop/proxy-pattern/proxy-01 Post not found: spring/design-pattern/spring-aop/strategy-pattern/strategy-pattern-01 Post not found: spring/design-pattern/spring-aop/template-method/template-method-01 Decorator 패턴 Decorator 패턴 은 기존 객체 수정없이 부가 기능 추가 를 위해 주로 사용하는 디자인 패턴이다. Decorator 패턴은 객체 지향 디자인 원칙 중 하나인 개방-폐쇄 원칙(OCP) 을 따릅니다. 이 패턴을 사용하면 코드의 수정 없이 기존 클래스에 새로운 기능을 추가하거나 기존 기능을 수정할 수 있습니다. Decorator 클래스는 기본 객체와 같은 인터페이스를 사용해 구현되며, 기본 객체를 Wrapping 하여 추가적인 기능을 제공합니다. 이러한 구조는 객체 간의 결합도를 낮추고, 유연성과 확장성을 높입니다. 기존 객체를 감싸는 Wrapper 클래스 를 만들고, Wrapper 클래스에 새로운 기능을 추가하는 방식으로 새로운 기능을 추가하거나 기존 기능을 수정하는데 사용됩니다. Decorator 패턴을 사용하면 객체의 기존 동작을 변경하지 않고도 객체에 새로운 동작을 추가할 수 있습니다. Decorator 패턴의 구성요소 Component 인터페이스나 추상 클래스로 정의된 기본 객체의 공통 인터페이스입니다. ConcreteComponent Component 인터페이스를 구현한 실제 객체입니다. Decorator Component 인터페이스를 구현하며, 기본 객체를 래핑하고 추가적인 기능을 제공하는 추상 클래스입니다. ConcreteDecorator Decorator 추상 클래스를 상속받아 기본 객체를 래핑하고 추가적인 기능을 구현한 실제 객체입니다.