UserServiceWrapper 具体实现
UserServiceWrapper是一个包装器,它包装了一个实际的UserService对象,并提供了额外的功能。具体实现如下:
public class UserServiceWrapper implements UserService {
private UserService userService;
public UserServiceWrapper(UserService userService) {
this.userService = userService;
}
@Override
public User getUserById(int id) {
// 在查询用户之前,做一些额外的操作
System.out.println("UserServiceWrapper: before getUserById()");
// 调用实际的UserService对象的getUserById()方法
User user = userService.getUserById(id);
// 在查询用户之后,做一些额外的操作
System.out.println("UserServiceWrapper: after getUserById()");
return user;
}
@Override
public void addUser(User user) {
// 在添加用户之前,做一些额外的操作
System.out.println("UserServiceWrapper: before addUser()");
// 调用实际的UserService对象的addUser()方法
userService.addUser(user);
// 在添加用户之后,做一些额外的操作
System.out.println("UserServiceWrapper: after addUser()");
}
// 其他方法的实现同上
}
在getUserById()和addUser()方法中,UserServiceWrapper先输出一条日志,然后调用实际的UserService对象的对应方法,最后再输出一条日志。这些额外的操作可以是任何你需要的操作,比如记录日志、计算执行时间等等。通过包装器模式,我们可以很方便地在不改变原有UserService对象的基础上,增加额外的功能。
原文地址: http://www.cveoy.top/t/topic/bzrU 著作权归作者所有。请勿转载和采集!