public interface Business { public void service(); public void execute(); } public class BusinessImpl implements Business { private String id = "default"; public BusinessImpl() {} public BusinessImpl(String id) { this.id = id; } @Override public void service() { System.out.println("service.id = " + this.id); } @Override public void execute() { System.out.println("execute.id = " + this.id); } } public class BusinessProxy implements Business { private Business business; public BusinessProxy(Business business) { this.business = business; } private void doBefore() { System.out.println("before service"); } private void doAfter() { System.out.println("after service"); } @Override public void service() { this.doBefore(); this.business.service(); this.doAfter(); } @Override public void execute() { this.doBefore(); this.business.service(); this.doAfter(); } public static void main(String[] args) { BusinessProxy proxy = new BusinessProxy(new BusinessImpl()); proxy.service(); } }
输出为:
before service
service.id = default
after service