透明装饰模式java代码
时间: 2023-07-03 20:05:36 浏览: 43
下面是一个简单的透明装饰模式的 Java 实现示例:
首先,我们定义一个接口 `Component`,表示被装饰的组件:
```java
public interface Component {
void operation();
}
```
然后,我们实现一个具体的组件 `ConcreteComponent`:
```java
public class ConcreteComponent implements Component {
@Override
public void operation() {
System.out.println("ConcreteComponent operation");
}
}
```
接着,我们定义一个抽象装饰器 `Decorator`,它也实现了 `Component` 接口:
```java
public abstract class Decorator implements Component {
protected Component component;
public Decorator(Component component) {
this.component = component;
}
@Override
public void operation() {
component.operation();
}
}
```
最后,我们实现具体的装饰器 `ConcreteDecorator`,它继承了抽象装饰器 `Decorator`:
```java
public class ConcreteDecorator extends Decorator {
public ConcreteDecorator(Component component) {
super(component);
}
@Override
public void operation() {
super.operation();
System.out.println("ConcreteDecorator operation");
}
}
```
这样,我们就可以使用透明装饰模式来动态地添加新的行为到现有的对象上,例如:
```java
Component component = new ConcreteComponent();
component = new ConcreteDecorator(component);
component.operation();
```
输出:
```
ConcreteComponent operation
ConcreteDecorator operation
```