代理模式(Proxy Pattern)是一种结构型设计模式,用于控制和管理访问对象,而不是直接访问对象。代理模式可以在不改变原始对象的情况下,提供额外的功能,如延迟加载、访问控制、日志记录等。
OrderService
接口定义了创建订单的方法。AppOrderService
类实现了OrderService
接口,提供了创建订单的具体实现。ProxyOrderService
类是代理,实现了OrderService
接口,并持有一个AppOrderService
实例。在createOrder
方法中,代理在实际业务调用前后添加了额外的日志输出。
通过代理模式,您可以在不改变原有 AppOrderService
类的情况下,对其功能进行扩展,例如添加日志记录、权限验证等。代理模式可以使得客户端代码更加干净,不需要直接处理额外的功能,而是通过代理进行管理。这种模式特别适用于需要在原有功能基础上添加横切关注点(如日志、安全等)的场景。