자, 오늘은 디자인 패턴에 대해 装饰器模式나누어보겠습니다. 적절한 인생 이야기와 실제 프로젝트 시나리오를 사용하여 디자인 패턴에 대해 이야기하고 마지막으로 디자인 패턴을 한 문장으로 요약합니다.
Story
옛말처럼: 사람은 옷을 의지하고 말은 안장을 의지합니다. 먼저 이 문장의 배경을 숙지해 봅시다:
사람은 옷에 의지하고, 말은 안장에 의지하고, 개는 종소리를 들고 달린다. 이 말은 심자진의 『왕호각』 제10장에 나오는 것이다. 금옷에 대하여 "사람은 옷을 입는데, 몸단장도 매우 중요하다." "깨어나는 말" 제1권: 정의로운 결혼을 위해 경쟁하는 현 행정관의 두 고아: "부처님은 금옷을 입으셨고, 사람은 금빛 옷을 입는다." 옷을 입고, 세상의 많은 사람들은 눈이 얕고, 뼈만 있고, 어른들은 옷에 의지하고 말은 안장에 의지합니다.
이 고전적인 이야기는 디자인 패턴인 데코레이터 패턴을 생각나게 합니다.
데코레이터 패턴이란 무엇인가요? Lao Tian의 이야기를 천천히 들어보세요.
데코레이터 패턴 개요
데코레이터 패턴(Decorator Pattern)은 래퍼 패턴(Wrapper Pattern)이라고도 하는데, 원래 객체를 변경하지 않고 객체에 일부 요소를 동적으로 추가하는 것을 말합니다. 기능 추가 측면에서 데코레이터 패턴은 하위 클래스를 생성하는 것보다 더 유연하며 구조적 디자인 패턴입니다.
영어:
동일한 인터페이스를 유지하면서 객체에 추가 책임을 추가합니다. 데코레이터는 객체에 기능을 확장하기 위한 하위 클래스화에 대한 유연한 대안을 제공합니다. 따라서 데코레이터 패턴의 핵심은 기능 확장이다. 데코레이터 패턴을 사용하여 클래스의 기능을 투명하고 동적으로 확장합니다.
Case in life 투박한 집은 장식하기 전에는 매우 추해 보이지만, 조금만 장식하면 훨씬 더 아름다울 것이며 목욕, 잠, 요리 등을 할 수 있습니다. , 그러나 본질은 여전히 집이다.
자동차는 원래 이동수단이었지만 메리는 이를 확대하고 구성을 업그레이드해 고급차가 되었지만 여전히 본질적으로는 이동수단입니다. 소녀는 원래 매우 평범하고 평범한 외모였지만, 화장을 하고 멋진 옷을 입고 나면 많은 사람들의 마음 속에 여신이 되었습니다. 간단히 말하면, 약간의 장식 후에는 달라지고 기능이 향상됩니다.
데코레이터 패턴의 범용 코드 구현 우리는 여전히 코드를 사용하여 구현합니다.
//抽象组件
public abstract class Component {
public abstract void operation();
}
//具体组件
public class ConcreteComponent extends Component {
@Override
public void operation() {
System.out.println("ConcreteComponent operation");
}
}
//装饰器抽象
public abstract class Decorator extends Component {
protected Component component;
public Decorator(Component component) {
this.component = component;
}
@Override
public void operation() {
component.operation();
}
}
//具体装饰器
public class ConcreteDecorator extends Decorator {
public ConcreteDecorator(Component component) {
super(component);
}
@Override
public void operation() {
System.out.println("开始前搞点事");
super.operation();
System.out.println("结束后搞点事");
}
}
//测试
public class Client {
public static void main(String[] args) {
Component component = new ConcreteDecorator(new ConcreteComponent());
component.operation();
}
}
로그인 후 복사
실행 결과:
开始前搞点事
ConcreteComponent operation
结束后搞点事
로그인 후 복사
위는 데코레이터 패턴의 일반적인 코드 구현입니다. 아래에서 분석해 보겠습니다.
Decorator 패턴 UML 다이어그램
위 내용은 3년간의 작업 필수 데코레이터 패턴의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!