一个pojo类有一个toFun方法 方法中使用到了pojo类的属性 使用装饰器模式使这个方法和pojo类解耦
时间: 2024-02-24 07:57:37 浏览: 114
可以使用装饰器模式来解耦这个方法和pojo类。首先定义一个接口,例如`PojoDecorator`,包含一个方法`toFun`。然后创建一个实现了这个接口的装饰器类,例如`PojoDecoratorImpl`,该类持有一个pojo类的引用,并在`toFun`方法中调用pojo类的属性。最后,修改pojo类的`toFun`方法,将其参数类型改为`PojoDecorator`,并在方法中调用装饰器对象的`toFun`方法即可完成解耦。
下面是示例代码:
```java
public interface PojoDecorator {
void toFun();
}
public class PojoDecoratorImpl implements PojoDecorator {
private Pojo pojo;
public PojoDecoratorImpl(Pojo pojo) {
this.pojo = pojo;
}
@Override
public void toFun() {
// 调用pojo类的属性
System.out.println("PojoDecoratorImpl toFun: " + pojo.getProperty());
}
}
public class Pojo {
private String property;
public Pojo(String property) {
this.property = property;
}
public void toFun(PojoDecorator decorator) {
decorator.toFun();
}
public String getProperty() {
return property;
}
}
```
使用示例:
```java
Pojo pojo = new Pojo("property value");
PojoDecorator decorator = new PojoDecoratorImpl(pojo);
pojo.toFun(decorator);
```
阅读全文