我们以建立订单,在订单方法的开始和结束的时候添加日志为例子。我们需要建立一个 net.haicoder.proxy
包,在该包下面建立 IOrderService.java
接口和 OrderCreate.java
和 OrderCreateProxy.java
和 TestMain.java
类。
文件创建完毕,目录结构如下图:
IOrderService.java
代码如下:
package net.haicoder.proxy;
public interface IOrderService {
Integer createOrder(Object param);
}
OrderCreate.java
代码如下:
package net.haicoder.proxy;
public class OrderCreate implements IOrderService {
public Integer createOrder(Object param) {
System.out.println("创建订单");
return 1;
}
}
OrderCreateProxy.java
代码如下:
package net.haicoder.proxy;
public class OrderCreateProxy implements IOrderService {
OrderCreate orderCreate;
public OrderCreateProxy() {
orderCreate = new OrderCreate();
}
public Integer createOrder(Object param) {
before();
Object object = null;
orderCreate.createOrder(object);
after();
return null;
}
private void before() {
System.out.println("创建订单前");
}
private void after() {
System.out.println("创建订单后");
}
}
TestMain.java
类如下:
package net.haicoder.proxy;
public class TestMain {
public static void main(String[] args) {
System.out.println("嗨客网(www.haicoder.net)");
OrderCreateProxy orderCreateProxy = new OrderCreateProxy();
Object param = null;
orderCreateProxy.createOrder(param);
}
}
程序运行后,控制台输出如下:
代理模式总结
设计模式中代理模式可以将具体的实现对象给隔离开,让客户端只获取到代理对象,让具体对象只关心自己业务逻辑,各司其职。