java中的装饰器模式
时间: 2023-05-23 11:00:48 浏览: 126
装饰器模式是一种结构型设计模式。它允许你在运行时给对象动态地添加功能,而无需修改其源代码。在 Java 中,装饰器模式通常使用继承来实现。
该模式最常见的例子是 Java 的 IO 类库,如 BufferedReader 和 LineNumberReader 等装饰器类。这些装饰器类通过继承和组合,可以在现有的 IO 类上添加新的功能。
下面是一个装饰器模式的示例:
public interface Component {
void operation();
}
public class ConcreteComponent implements Component {
@Override
public void operation() {
System.out.println("具体组件的操作。");
}
}
public class Decorator implements Component {
private 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() {
super.operation();
addBehavior();
}
private void addBehavior() {
System.out.println("具体装饰类的新方法。");
}
}
在这个示例中,Component 是一个抽象接口,定义了 operation() 方法。ConcreteComponent 是一个具体的组件,实现了 Component 接口。
Decorator 是一个装饰器类,实现了 Component 接口。它包含一个 Component 对象,通过调用 operation() 方法来实现相同的操作。
ConcreteDecorator 是一个具体的装饰器类,包含一个 Component 对象,并在调用其 operation() 方法后添加了新的行为。
使用该模式可以动态地添加新功能,同时避免代码的修改,对代码的可维护性和扩展性有很大的帮助。
阅读全文